首先加2個TImage,Img1載入jpeg,把結果blt到Img2上。但是源用canvas.handle或者picture.bitmap.handle都無法stretchblt,如下: Stretchblt(Img2.Canvas.Handle,0,0,Img2.Width,Img2.height,Img1.canvas.handle,0,0,img1.width,img1.height,srccopy); Stretchblt(Img2.Canvas.Handle,0,0,Img2.Width,Img2.height,Img1.picture.bitmap.handle,0,0,img1.width,img1.height,srccopy);但是載入bmp,卻可以使用第1條語句。有沒有載入jpeg,也可以把結果blt到Img2的解決辦法?謝謝

解决方案 »

  1.   

    var
      tmp: TBitmap;
    begin
      if Img1.Picture.Graphic is TBitmap then
        Stretchblt(Img2.Canvas.Handle,0,0,Img2.Width,Img2.height,Img1.canvas.handle,0,0,img1.width,img1.height,srccopy)
      else
      begin
        tmp := TBitmap.Create;
        tmp.Assign(Img1.Picture.Graphic);
        Stretchblt(Img2.Canvas.Handle,0,0,Img2.Width,Img2.height,tmp.Canvas.Handle,0,0,img1.width,img1.height,srccopy);
        tmp.Free;
      end;