zoukankan      html  css  js  c++  java
  • GDI+ 学习记录(31): 图像颜色变换(TGPImageAttributes)

    //正常显示图片, 没有变换
    uses GDIPAPI, GDIPOBJ;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      g: TGPGraphics;
      img: TGPImage;
    begin
      g := TGPGraphics.Create(Canvas.Handle);
      img := TGPImage.Create('c:\temp\test.png'); {测试文件要存在}
      g.DrawImage(img, 0, 0, img.GetWidth, img.GetHeight);
      img.Free;
      g.Free;
    end;
    
    //效果图:

    //添加颜色变换
    uses GDIPAPI, GDIPOBJ;
    
    procedure TForm1.FormPaint(Sender: TObject);
    var
      g: TGPGraphics;
      img: TGPImage;
      imgAtt: TGPImageAttributes;
    const
      ColorMatrix: TColorMatrix = (
        (1.0, 0.0, 0.0, 0.0, 0.0),
        (0.0, 1.0, 0.0, 0.0, 0.0),
        (0.0, 0.0, 1.0, 0.0, 0.0),
        (0.0, 0.0, 0.0, 1.0, 0.0),
        (1.0, 0.0, 0.0, 0.0, 1.0));
    begin
      g := TGPGraphics.Create(Canvas.Handle);
      img := TGPImage.Create('c:\temp\test.png'); {测试文件要存在}
    
      imgAtt := TGPImageAttributes.Create;
      imgAtt.SetColorMatrix(colorMatrix, ColorMatrixFlagsDefault, ColorAdjustTypeDefault);
    
      g.DrawImage(
        img,
        MakeRect(0,0,img.GetWidth,img.GetHeight),
        0,
        0,
        img.GetWidth,
        img.GetHeight,
        UnitPixel,
        imgAtt);
    
      imgAtt.Free;
      img.Free;
      g.Free;
    end;
    
    //效果图:

    这个话题还有很多内容, 先弄这个例子算是给 M. Rokkaei 的回答.
  • 相关阅读:
    Web.xml中Filter过滤器标签几个说明
    JVM参数配置大全
    Java时间日期格式转换
    第一天用博客园
    Java基础--序列化和反序列化
    Java面试题2017
    固定布局,流动布局,弹性布局
    viewport
    索引
    Java虚拟机
  • 原文地址:https://www.cnblogs.com/del/p/1065275.html
Copyright © 2011-2022 走看看