-
Charly22 (13.11.12 20:53) [0]Здравствуйте! Может, кто подскажет, как определить ширину и высоту уменьшенной картинки при условии, что:
Img: TImage;
.....
Img.Align := alClient;
Img.AutoSize := False;
Img.Center := True;
Img.Proportional := True;
Img.Stretch := True;
Проблема в том, что свойства Width и Height у Picture, Bitmap возвращают значения исходных размеров изображения, загруженного с помощью Img.Picture.LoadFromFile(FileName).
Спасибо! -
MBo © (13.11.12 21:10) [1]нужно сравнить отношения PictureWidth/PictureHeight и аналогичное для Image IW/IH.
Если первое больше, то ширина будет такая же, как у Image, а высота PH * PW / IW -
Konst (03.12.14 02:10) [2]А как теперь из TImage скопировать уменьшенную копию изображения?
-
MBo © (03.12.14 08:37) [3]>А как теперь из TImage скопировать уменьшенную копию изображения?
А TImage здесь случайно не лишнее звено?
Откуда берется картинка, куда и как её надо скопировать? -
Konst (03.12.14 13:58) [4]Есть графический файл, хочу сделать его thumbnail.
TImage умеет масштабировать. Была идея загрузить картинку из файла в TImage фиксированного размера, и забрать из него уменьшенную копию. -
MBo © (03.12.14 14:25) [5]Масштабировать можно и с помощью битмапов TBitmap.Canvas.StretchDraw
-
Konst (03.12.14 14:51) [6]Да, действительно. Спасибо ))
-
Endy (03.12.14 17:19) [7]Через gdi32 очень плохое качество будет, возьмите GDI+. Можно даже сразу грузить из файла и сохранять в файл в нужном формате.
GdiplusStartup + GdipGetImageEncodersSize + GdipGetImageEncoders + GdipCreateBitmapFromFile + GdipSaveImageToFile + GdipDisposeImage + GdiplusShutdown