Помощь - Поиск - Пользователи - Календарь
Полная версия: работа с файлами *.jpeg/*.jpg - файлами
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Флогримм
в инете по этому поводу инфы мало, потому обращаюсь к вам

1)как изменить разрешение *.jpeg/*.jpg - файлов?
2)как узнать размер файла (в кб)?
xds
Используй объект "TJPEGImage"...
Флогримм
понимаю, что надо использовать этот объект... но как именно изменить разрешение?
P@sh@
сам по себе TJPEGImage не имеет канваса и загруженную в него jpeg-картинку просто так не изменить. насколько я понимаю, его надо распаковать в обычный TBitmap, изменить там, как надо (размер изменить наверное можно с помощью StretchDraw) и сжать обратно в jpeg с заданными параметрами...
как узнать размер файла, не знаю, я с ним не работал.
CJ
Немного не понятно какое тебе разрешение надо! smile.gif))
Типа как на рабочем столе меняешь? Может я и ошибаюсь, но наверное нет такого в JPG. Ьщжет есть кол-во точек по шрине и высоте, так это размеры.
А размер картинки можно узнать, как размер простого файла.
Флогримм
CJ
как узнать "размер простого файла"?

под изменением разрешения я подразумеваю изменения размера изображения в пикселах, например была картинка 1024х768 -> 800х600
понимэ?

вообще то я уже знаю метод:

Код
...
var
Desk: PCanvas;
Rect: TRect;
...
Desk := NewCanvas(GetDC(Hwnd_Desktop));
Bitmap := NewBitmap(320, 240); // Тут устанавливаем размер нового изображения
with Rect do
begin
  Left := 0;
  Top := 0;
  Right := 320;
  Bottom := 240;
end;
Bitmap.Canvas.CopyRect(Rect, Desk, Desk.ClipRect); // Копируем изображение и меняем его размер
P@sh@
Флогримм
нет, CopyRect не изменяет размеры изображения, тебе надо StretchDraw (или StretchBlt)...
bitmap.canvas.StretchDraw(Rect, Graphic: TGraphic);
а так как TJPEGImage - потомок TGraphic, то можно его тут использовать

PS: размер "простого" файла узнается с помощью функции FileSize
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.