Главная страница
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.017 c
3-60943
orion_st
2002-08-28 11:03
2002.09.19
Программно создать поле


3-61006
vich
2002-08-27 23:29
2002.09.19
Помогите! Хочу перенести данные из одной базы в другую


1-61206
Anar
2002-09-08 23:28
2002.09.19
Кнопки как в


1-61136
Andy BitOff
2002-09-06 14:03
2002.09.19
Виртуальный Grid


1-61202
Gonza
2002-09-08 15:36
2002.09.19
Связывание полей/свойств объекта и контролов