Завантаження фото в форматі jpg в компонент image
Завантаження фото в форматі JPG в компонент Image.
Як програмно завантажити в компонент Image зображення у форматі JPG.
Роблю це командою
Image1.Picture.LoadFromFile ( "c: \ photo.jpg");
Видається повідомлення про помилку
'Unknkown picture file extension (.jpg)'
Причому якщо програмно завантажувати bmp файл, то все нормально.
Заздалегідь дякую, Сергій.
Включи в 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;
Круто, але по-моєму
Image1.Picture.LoadFromFile ( "c: \ photo.jpg");
значно простіше
Не, ні фіга, так не прокатує навіть при включеному JPEG "е
та що ви говорите, а у мене чомусь все працює
Там є маса глюків. Варіант від BOA_KAA дійсно краще, ніж просто LOadFrom. але місце jpg.LoadFromFile треба загнати в try except і вже за підсумками вирішувати, прочитав імадж чи ні.
Справа в тому, що при завантаженні файлу JPG.LoadFromFile дає помилки за деякими своїми міркуваннями (не випадково версій, невідомий тег, порушена цілісність файлу.) Але при цьому файл ВСЕ ОДНО Грузії.
Так що помилки ізолюй і працюй.
Точно, просто я не став додавати цю справу в код. Буде кілька правильніше, якщо так:
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;
Неа. Так у тебе не все файли пойлут. Я робив приблизно так:
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;
Так але в вашому випадку при виникненні помилки на етапі
JPG.LoadFromFile
в Image нічого не завантажиться, тому що управління відразу перейде до блоку finally