Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.009 c
1-61146
Valeris
2002-09-05 18:34
2002.09.19
Operation must use an updateable query


3-60958
Азазелло
2002-08-28 14:12
2002.09.19
Delphi 5 + ADO - фичинг записей..


7-61325
iii
2002-07-10 18:29
2002.09.19
Как убрать .CPL файл с Панели задач (Taskbar) ?


7-61323
Kr_Alex
2002-07-10 16:06
2002.09.19
Завершение Win


1-61050
KIR
2002-09-09 11:46
2002.09.19
Case вызывает Stack Overflow...




   Наверх