Конференция "Media" » TImage: размеры картинки при Stretch=True [D7]
 
  • 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
 
Конференция "Media" » TImage: размеры картинки при Stretch=True [D7]
Есть новые Нет новых   [134427   +38][b:0][p:0.001]