Главная страница
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.013 c
14-61298
^Sanya
2002-08-20 02:21
2002.09.19
Просьба оценить дизайн сайта


14-61270
MIFI
2002-08-23 14:12
2002.09.19
нужно узнать путь до страницы каторая запустила


1-61183
library
2002-09-08 03:59
2002.09.19
Создать ярлык для папки и поместить его в Пуск -> Документы.


14-61310
Посетитель форума
2002-08-23 10:13
2002.09.19
Здрасьте :-)


1-61210
Viktor Kushnir
2002-09-07 08:45
2002.09.19
Запись в файл