请教各位:如何高质量缩小JPG图形。怎样的算法可以在缩小后有photoshop的缩小质量效果。

解决方案 »

  1.   

    SetStretchBltMode(TmpBmp.Canvas.Handle,HALFTONE);StretchBlt(TmpBmp.Canvas.Handle,0,0,TmpBmp.Width,TmpBmp.Height,
               ScaleBmp.Canvas.Handle,0,0,ScaleBmp.Width,ScaleBmp.Height,SRCCOPY);StretchDraw;
    TmpBmp,ScaleBmp为你自己缩放后、前的位图,你自己把jpg转一下。主要就是上面的,这种方法尤其对于缩小显示很有用的 。要想确保高缩放质量,最好还是矢量操作;
    提取原图的图元,记录相应信息,按缩放比例重绘。
      

  2.   

    使用GDI+ 吧,效率和速度都很高
    GDI+ for Delphi,盒子有得下...
    或者去
    http://www.progdigy.com/index.phpuses
      GDIPAPI,
      GDIPOBJ,Procedure OnPaint(DC: HDC);
    var
      graphics : TGPGraphics;
      Image: TGPImage;
      um: TGPImage;
    begin
      graphics := TGPGraphics.Create(DC);
      Image := TGPImage.Create('c:\test.jpg');
      um := image.GetThumbnailImage(90,70,nil,nil);
      graphics.DrawImage(um,10,10,um.GetWidth,um.GetHeight);
    end;