Png 图像缩放保持 Alpha 通道

Posted 思想。生活。网络

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Png 图像缩放保持 Alpha 通道相关的知识,希望对你有一定的参考价值。

procedure TForm1.Button1Click(Sender: TObject);
//uses Winapi.GDIPOBJ, Winapi.GDIPAPI, Winapi.GDIPUTIL,
var
  Input: TGPImage;
  Output: TGPBitmap;
  Encoder: TGUID;
  Graphics: TGPGraphics;
begin
  Input := TGPImage.Create(‘C:\InputImage.png‘);
  try
    // create the output bitmap in desired size
    Output := TGPBitmap.Create(100, 100, PixelFormat32bppARGB);
    try
      // create graphics object for output image
      Graphics := TGPGraphics.Create(Output);
      try
        // set the composition mode to copy
        Graphics.SetCompositingMode(CompositingModeSourceCopy);
        // set high quality rendering modes
        Graphics.SetInterpolationMode(InterpolationModeHighQualityBicubic);
        Graphics.SetPixelOffsetMode(PixelOffsetModeHighQuality);
        Graphics.SetSmoothingMode(SmoothingModeHighQuality);
        // draw the input image on the output in modified size
        Graphics.DrawImage(Input, 0, 0, Output.GetWidth, Output.GetHeight);
      finally
        Graphics.Free;
      end;
      // get encoder and encode the output image
      if GetEncoderClsid(‘image/png‘, Encoder) <> -1 then
        Output.Save(‘C:\OutputImage.png‘, Encoder)
      else
        raise Exception.Create(‘Failed to get encoder.‘);
    finally
      Output.Free;
    end;
  finally
    Input.Free;
  end;
end;

  

以上是关于Png 图像缩放保持 Alpha 通道的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 缩放图像代码 - 支持PNG透明通道(利用了Windows的windowscodecs.dll)

如何检查加载到 FMX.TBitmap 的 PNG 图像是不是具有 alpha 通道?

如何使背景PNG图像Alpha通道在QMainWindow中显示为透明

使用 FPDF (PHP) 插入带有 alpha 通道的 PNG

如何在png里删除alpha通道

Alpha 通道的图像映射