把Abitmap的图形copy到BBitMap中,
要求BBitMap的大小比ABitMap的小,copy过来的图形要整体变小,也就是压缩。
我用setstretchbltmode();和Setretchblt()二个函数老是配不出来;
请各位帮忙!!!

解决方案 »

  1.   

    用scanline 是对图形象素进行操做的,图形拷贝,放大,缩小等操做可以用;或
    用stretchdraw进行操做, 自动适应大小。
      

  2.   

    Canvas画的压缩了会变形的,!
      

  3.   

    用Canvas.CopyRect试试看,准保好使。
      

  4.   

    {
    Image1的AutoSize为True,你可以加载<Windows>\Forest.bmp
    Image2的尺寸设置为100x100
    }procedure TForm1.Button1Click(Sender: TObject);
    var
      Dest, Source: TRect;
    begin
      Dest := Rect(0, 0, 100, 100);
      Source := Rect(0, 0, Image1.Width, Image1.Height);
      Image2.Canvas.CopyRect(Dest, Image1.Canvas, Source);
    end;
      

  5.   

    你只需要任意设置Source与Dest的尺寸,Canvas.CopyRect方法都会自动适应变化,就象你在水平和垂直方向上任意改变比例一样。如果要保持图象的纵横比,那么需要在指定Source和Dest时充分考虑。
      

  6.   

    目前好象没有好的办法,图象还是会变形的。canvas画的原因,能处理好的话,我不就去
    photoshop公司了吗?