Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.09.19;
Скачать: CL | DM;

Вниз

Загрузка фото в формате JPG в компонент Image.   Найти похожие ветки 

 
Сергей Нечепуренко   (2002-09-06 11:30) [0]

Как программно загрузить в компонент Image изображение в формате JPG ?
Делаю это командой
Image1.Picture.LoadFromFile("c:\photo.jpg");
Выдается сообщение об ошибке
‘Unknkown picture file extension (.jpg)’
Причем если программно загружать bmp файл, то все нормально.
Заранее благодарю, Сергей.


 
Kaban ©   (2002-09-06 11:41) [1]

Включи в uses стандартный модуль JPEG


 
ЮЮ ©   (2002-09-06 11:43) [2]

A если добавить RxGif (при установленном RxLib) то и GIF-ы читать будет :-)


 
BOA_KAA ©   (2002-09-06 11:43) [3]

uses JPEG;

procedure TfmMain.FormCreate(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
if not OpenPictureDialog1.Execute then Exit;
jpg:=TJPEGImage.Create;
bmp:=TBitmap.Create;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
bmp.Assign(jpg);
Image1.Picture.Assign(bmp);
jpg.Free;
bmp.Free;
end;


 
Kaban ©   (2002-09-06 11:46) [4]

2 BOA_KAA

Круто, но по-моему
Image1.Picture.LoadFromFile("c:\photo.jpg");
гораздо проще


 
BOA_KAA ©   (2002-09-06 11:48) [5]

2Kaban © (06.09.02 11:46)

Ща попробую...


 
BOA_KAA ©   (2002-09-06 11:50) [6]

2Kaban © (06.09.02 11:46)

Не, не фига, так не прокатывает даже при включенном JPEG"е


 
Kaban ©   (2002-09-06 11:54) [7]

да что вы говорите, а у меня почему-то все работает


 
Smithson ©   (2002-09-06 11:56) [8]

Там есть масса глюков. Вариант от BOA_KAA действительно лучше, чем просто LOadFrom..., но место jpg.LoadFromFile надо загнать в try except и уже по итогам решать, прочелся имадж или нет.
Дело в том, что при загрузке файла JPG.LoadFromFile дает ошибки по неким своим соображениям (не совпадение версий, неизвестный тег, нарушена целостность файла ...) но при этом файл ВСЕ РАВНО ГРУЗИТ.
Так что ошибки изолируй и работай.


 
BOA_KAA ©   (2002-09-06 12:02) [9]

2Smithson © (06.09.02 11:56)

Точно, просто я не стал добавлять это дело в код... Будет несколько правильнее, ежели так:

uses JPEG;

procedure TfmMain.FormCreate(Sender: TObject);
var
bmp: TBitmap;
jpg: TJPEGImage;
begin
if not OpenPictureDialog1.Execute then Exit;

try
jpg:=TJPEGImage.Create;
bmp:=TBitmap.Create;
jpg.LoadFromFile(OpenPictureDialog1.FileName);
bmp.Assign(jpg);
Image1.Picture.Assign(bmp);
finally
jpg.Free;
bmp.Free;
end;
end;


 
Smithson ©   (2002-09-06 12:07) [10]

Неа. Так у тебя не все файлы пойлут... Я делал примерно так:

var
bmp: TBitmap;
jpg: TJPEGImage;
begin
if not OpenPictureDialog1.Execute then Exit;

try
jpg:=TJPEGImage.Create;
bmp:=TBitmap.Create;
try
jpg.LoadFromFile(OpenPictureDialog1.FileName);
except
// А нафиг нам его ошибки?
end;
bmp.Assign(jpg);
Image1.Picture.Assign(bmp);
except
// А вот тут уже что-то не то, файл не прочитался, надо делать выводы
end;
jpg.Free;
bmp.Free;


 
Kaban ©   (2002-09-06 12:08) [11]

Да но в вашем случае при возникновении ошибки на этапе
JPG.LoadFromFile
в Image ничего не загрузится, т.к. управление сразу перейдет к блоку finally


 
Kaban ©   (2002-09-06 12:09) [12]

2 Smithson © (06.09.02 12:07)
Вот такой код действительно корректен


 
BOA_KAA ©   (2002-09-06 12:30) [13]

2Smithson © (06.09.02 12:07) & Kaban © (06.09.02 12:08)

... сдался:-)))))



Страницы: 1 вся ветка

Текущий архив: 2002.09.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.01 c
8-61217
charlie
2002-05-18 19:49
2002.09.19
О причине мигания экрана при рисовании


1-61033
MsGuns
2002-09-06 11:47
2002.09.19
Как в отладчике посмотреть содержимое TStrings


1-61171
eruc
2002-09-07 15:12
2002.09.19
Как узнать: была ли уже создана форма или нет ?


6-61225
HrUsT
2002-07-12 11:37
2002.09.19
отправка e-mail через приложение


4-61357
easy
2002-07-03 13:46
2002.09.19
CPP -> Delphi