powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / работа с изображением (jpeg)
6 сообщений из 6, страница 1 из 1
работа с изображением (jpeg)
    #32220949
Арнис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тута, значит, ещё один гемор родился.
Есть цифровой фотик. С его помощью делают фотки :) размерами, скажем (примерно) 1600х1200 с плотностью 300dpi 24млн. цветов и естественно с размером около 5Мб. Такие фотки в базу не запихаешь, да и грузить накладно.
Задача Из вышеперечисленного программно сделать фотку примерно 72dpi и размерами 9х13.
Может у кого есть какие варианты? Выслушаю с большой радостью.

З.Ы. : к цифрам в сообщении ненадо придераться, т.к. оны выбраны от балды
...
Рейтинг: 0 / 0
работа с изображением (jpeg)
    #32220956
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно я придерусь?
9х13 выглядит как сантиметраж. а в компах нет сантиметража, это бил гей(тс-с-с) выдумал. в компах есть пиксели, байты, сантиметров тама нету.

а вообще, как я понял из сабжа, тебя интересует TJpegImage ctrl-f1
штука несложная
...
Рейтинг: 0 / 0
работа с изображением (jpeg)
    #32221037
Арнис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ок - небудем зацикливаться на цифрах. А можно поподробнее про TJpegImage и ещё чего-то там :)
З.Ы. сильно не ругаемся, т.к. мой уровень а программировании ещё очень мал
...
Рейтинг: 0 / 0
работа с изображением (jpeg)
    #32221096
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего подробнее?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
var
  ji:TJpegImage;
begin
  ji:=TJpegImage.create;
  ji.picture.assign(Image1);
  ji.savetofile('blablabla.jpg');
  ji.savetostream(yourblobstreamhere);
  ji.free;
end;

я это не проверял, прямо сдесь написал, в общем что-то вроде этого...
...
Рейтинг: 0 / 0
работа с изображением (jpeg)
    #32221107
Арнис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
э... А что это даст кроме сохранения в файл?
...
Рейтинг: 0 / 0
работа с изображением (jpeg)
    #32222342
Дмитрий Мыльников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если перевести в пикселы, то получим 255х368.

Необходимо использовать Canvas.StretchDraw, но у JPEG нет Canvas, поэтому приходится изголяться.

получается что-то типа:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
uses ...,JPEG,...;

...

procedure TForm1.SpeedButton1Click(Sender: TObject);
var JpegImage:TJpegImage;
    Bitmap:TBitmap;
begin   
  JpegImage:=TJPEGImage.Create;
  Bitmap:=TBitmap.Create;
  try
    Bitmap.Assign(Image.Picture.Graphic);
    Bitmap.Canvas.StretchDraw(Rect( 0 , 0 , 368 , 256 ),Bitmap);
    Bitmap.Width:= 368 ; Bitmap.Height:= 256 ;
    JpegImage.Assign(Bitmap);
//я в тесте сохранял в файл, но тут можно сохранять и в BLOBStream через SaveToStream
    JpegImage.SaveToFile(FileName);
  finally 
    Bitmap.Free; JpegImage.Free;
  end;
end;



Да, собственно картикнка уже лежит в Image.Picture.Graphic. Хотя можно сделать и предварительную загрузку из файла. Если нужно считывать тоже из JPG, то в начале что-то типа

try
JpegImage.LoadFromFile(FileNameSrc);
Bitmap.Assign(JpegImage);
...

Только не забудьте, что TImage умеет сам определять тип загружаемого файла, в то время как в последнем случае придётся это проверять самому.
То есть, там что-то типа проверки на расширение файла и либо загрузка в JpegImage, как в примере, либо вместо этих двух строчек непосредственно делаем LoadFromFile у Bitmap.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / работа с изображением (jpeg)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]