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

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Всем привет! Такой вот вопрос! Есть jpg фотография, большого размера файл, ~3-6Mb Можно ли при помощи TImage создать миниатюру данной фотки и сохранить ее в отдельный файл? Т.е. например фотка имеет разрешение 640х480 надо сделать ее 320х240 например.... Как такое реализовать???
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Нашел вот такой кусок кода

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

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'); - не дает, сохраняет оригинал картинки...
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Кстати, подобная прога лежит в ...\Borland\Delphi6\Help\Examples\Jpeg\ я от туда и взял пример....
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

из вкладки Dialog компанент Save имеет место быть на форме?
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Ну впринципе не проблема, я просто не знаю какими способами можно это сделать.... так что любой совет выслушаю
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

Dialog->SavePictureDialog
и автоматическое сохраниение картинки.

а как вы открываете изображение? прописываете путь в коде?
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Использую OpenDialog,загружаю картинку в Image и потом ее уменьшаю. Вот только сохранить полученный результат в файл не могу
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

C_O_D_E писал(а):Dialog->SavePictureDialog
и автоматическое сохраниение картинки.



Это как???
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
C_O_D_E
Сообщения: 296
Зарегистрирован: 13 фев 2008, 20:10
Откуда: Беларусь. Орша
Контактная информация:

для открытия картинки стоит использовать OpenPictureDialog(т.к. есть возможность просмотра того чего открываем )
далее. процедура сохранить как выглядит так:
[syntax=Delphi]
SavePictureDialog1.filename:=fname;
If SavePictureDialog1.Execute
then begin
FName:=OpenPictureDialog1.FileName;
I1_Pic.Picture.Graphic.SaveToFile(FName);
end;
[/syntax]
кажется так. я не компилировала
Если назначен специальный человек для контроля за чистотой исходной информации, то найдется изобратательный идиот, который придумает способ, чтобы неправильная информация прошла этот контроль.
Dr_Grizzly
Сообщения: 407
Зарегистрирован: 13 сен 2004, 12:05
Откуда: Курган
Контактная информация:

Да с этим все понятно ))) дело в другом, картинка в Image уменьшена как мне надо, а вот сохранить ее в уменьшеном виде не получается. При попытки сохранить, сохранятся оригинал картинки, т.е. большая. Я просто думал, что есть возможность сохранить из preview savepicdialog'а картинку в файл )))
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто! ;) Да! Кстати! Ctrl+V реально вставляет!!! ХDD
Ответить