Страница 1 из 2

Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 20:12
Dr_Grizzly
Всем привет! Такой вот вопрос! Есть jpg фотография, большого размера файл, ~3-6Mb Можно ли при помощи TImage создать миниатюру данной фотки и сохранить ее в отдельный файл? Т.е. например фотка имеет разрешение 640х480 надо сделать ее 320х240 например.... Как такое реализовать???

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:03
Dr_Grizzly
Нашел вот такой кусок кода

Код: Выделить всё

procedure Tfmain.Button4Click(Sender: TObject);
var
  Temp: Boolean;
begin

  Temp := I1_Pic.Picture.Graphic is TJPEGImage;
  if Temp then
    with TJPEGImage(I1_Pic.Picture.Graphic) do
    begin
      PixelFormat := TJPEGPixelFormat(Self.PixelFormat.ItemIndex);

      Scale := TJPEGScale(Self.Scale.ItemIndex);
      Grayscale := Boolean(Colorspace.ItemIndex);
      Performance := TJPEGPerformance(Self.Performance.ItemIndex);
      ProgressiveDisplay := Self.ProgressiveDisplay.Checked;
    end;
  Scale.Enabled := Temp;
  PixelFormat.Enabled := Temp;
  Colorspace.Enabled := Temp;
  Performance.Enabled := Temp;
  ProgressiveDisplay.Enabled := Temp
    and TJPEGImage(I1_Pic.Picture.Graphic).ProgressiveEncoding;

  I1_Pic.IncrementalDisplay := IncrementalDisplay.Checked;
end;

Картинка уменьшается пропорционально, но не могу сохранить в файл полученный результат! пытаюсь I1_Pic.Picture.Graphic.SaveToFile('C:\aaa.jpg'); - не дает, сохраняет оригинал картинки...

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:17
Dr_Grizzly
Кстати, подобная прога лежит в ...\Borland\Delphi6\Help\Examples\Jpeg\ я от туда и взял пример....

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:30
C_O_D_E
из вкладки Dialog компанент Save имеет место быть на форме?

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:36
Dr_Grizzly
Ну впринципе не проблема, я просто не знаю какими способами можно это сделать.... так что любой совет выслушаю

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:40
C_O_D_E
Dialog->SavePictureDialog
и автоматическое сохраниение картинки.

а как вы открываете изображение? прописываете путь в коде?

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:51
Dr_Grizzly
Использую OpenDialog,загружаю картинку в Image и потом ее уменьшаю. Вот только сохранить полученный результат в файл не могу

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:53
Dr_Grizzly
C_O_D_E писал(а):Dialog->SavePictureDialog
и автоматическое сохраниение картинки.



Это как???

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 21:57
C_O_D_E
для открытия картинки стоит использовать OpenPictureDialog(т.к. есть возможность просмотра того чего открываем )
далее. процедура сохранить как выглядит так:
[syntax=Delphi]
SavePictureDialog1.filename:=fname;
If SavePictureDialog1.Execute
then begin
FName:=OpenPictureDialog1.FileName;
I1_Pic.Picture.Graphic.SaveToFile(FName);
end;
[/syntax]
кажется так. я не компилировала

Re: Как создать миниатюру JPG картинки?

Добавлено: 29 авг 2008, 22:10
Dr_Grizzly
Да с этим все понятно ))) дело в другом, картинка в Image уменьшена как мне надо, а вот сохранить ее в уменьшеном виде не получается. При попытки сохранить, сохранятся оригинал картинки, т.е. большая. Я просто думал, что есть возможность сохранить из preview savepicdialog'а картинку в файл )))