文档章节

再学 GDI+[92]: TGPImage(12) - 调整图像透明度

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 238
阅读 9
收藏 0

#程序员薪资揭榜#你做程序员几年了?月薪多少?发量还在么?>>>

本例效果图:



代码文件:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    TrackBar1: TTrackBar;
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure TrackBar1Change(Sender: TObject);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

uses GDIPOBJ, GDIPAPI;

var
  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),
    (0.0, 0.0, 0.0, 0.0, 1.0));

procedure TForm1.FormCreate(Sender: TObject);
begin
  TrackBar1.Height := 23;
  TrackBar1.ShowSelRange := False;
  TrackBar1.Max := 100;
  TrackBar1.Position := TrackBar1.Max;

  DoubleBuffered := True;
end;

procedure TForm1.FormPaint(Sender: TObject);
var
  g: TGPGraphics;
  img: TGPImage;
  ImageAttributes: TGPImageAttributes;
begin
  g := TGPGraphics.Create(Canvas.Handle);
  img := TGPImage.Create('c:\temp\test.png');

  ImageAttributes := TGPImageAttributes.Create;

  {TColorMatrix 数组的 [3,3] 决定透明度}
  ColorMatrix[3,3] := TrackBar1.Position / 100;
  ImageAttributes.SetColorMatrix(ColorMatrix);

  g.DrawImage(img,
              MakeRect(0, 0, img.GetWidth, img.GetHeight),
              0,
              0,
              img.GetWidth,
              img.GetHeight,
              UnitPixel,
              ImageAttributes
              );

  ImageAttributes.Free;
  img.Free;
  g.Free;
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  Repaint;
end;

end.

 
 
 
 
 

 

 

  
窗体文件:
object Form1: TForm1
  Left = 0
  Top = 0
  Caption = 'Form1'
  ClientHeight = 267
  ClientWidth = 316
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  Position = poDesktopCenter
  OnCreate = FormCreate
  OnPaint = FormPaint
  PixelsPerInch = 96
  TextHeight = 13
  object TrackBar1: TTrackBar
    Left = 0
    Top = 240
    Width = 305
    Height = 45
    TabOrder = 0
    OnChange = TrackBar1Change
  end
end

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2008/07/05/1236006.html

涂孟超
粉丝 13
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

GDI+图像处理学习笔记——改变图像的透明度

GDI+是WindowsXp和windows Server 2003中的一个子系统,主要用于处理系统的绘制消息。GDI+是GDI的扩展,其继承了GDI的有点并在其基础上进行了改进,包括增加了一些GDI无法绘制的图形函数,同...

晨曦之光
2012/05/23
608
0
关于GDI+在透明Bitmap上绘制时边缘有黑色重影的解决(WPF中)

最近在做软件工程课程的作业,其中有一个地方需要用到GDI+绘制图像并将句柄传给托盘当作托盘图标,可是因为楼主本人的强迫症比较严重,所以在测试时发现了一些小问题: 红线中是托盘区最左侧...

q886yes
2018/04/21
0
0
从零开始学习GDI+ (二) 基本概念与基本操作

从零开始学习GDI+ (一)我的第一个GDI+程序 上文给新手学习GDI+讲述了vs环境等的准备工作,并且可以直接用GDI+绘图了。本文开始,讲述的可能偏理论,建议学习的过程中大胆尝试,多使用API。...

osc_bkdv2it5
2019/08/20
1
0
GDI+学习---2.GDI+编程模式及组成类

  在使用GDI+的时候,您不必像在GDI中那样关心设备场景句柄,只需简单地创建一个Graphics对象,然后以您熟悉的面向对象的方式(如myGraphicsObject.DrawLine(parameters))调用它的方法即可...

osc_wa6fkyf0
2018/08/11
1
0
GDI+用PNG图片做半透明异型窗口

http://hi.baidu.com/bluew/blog/item/2ecbe58bf93a937d9f2fb4de.html2007-08-09 00:52   我是用PNG图片Alpha透明的方式做的窗口,这种方法一个好处就是不用通过编程来控制窗口外观。Delph...

osc_vf6gypzr
2019/09/02
4
0

没有更多内容

加载失败,请刷新页面

加载更多

Go Gin 简明教程

https://geektutu.com/post/quick-go-gin.html

Java搬砖工程师
44分钟前
19
0
中台建设-中台概述

一,什么是中台 ①,中台是能力的共享和沉淀, ②,中台是为前台服务的,有了中台,可快速构建前台应用. 二,为什么建设中台 ①,能力共享和沉淀,避免烟囱似建设 ②,快速搭建前台. 三,怎么建设中台 ...

Original123
47分钟前
15
0
如何更改远程Git存储库的URI(URL)? - How to change the URI (URL) for a remote Git repository?

问题: I have a repo (origin) on a USB key that I cloned on my hard drive (local). 我在硬盘驱动器(本地)上克隆的USB密钥上有一个回购(来源)。 I moved "origin" to a NAS and succ......

技术盛宴
59分钟前
26
0
连接热点的电脑能注册到开热点电脑的注册中心,但是网关不能路由到服务实例

类似问题描述 1.连接热点的电脑能注册到开热点电脑的注册中心,但是网关不能路由到服务实例。2.微服务注册到到Eureka注册中心的ip不正确,导致网关路由不到具体为服务实例。3.Eureka注册...

LoSingSang
今天
14
0
利用flask部署keras模型报错

利用flask部署keras模型时报错: Tensor("dense_2/Softmax:0", shape=(?, 26), dtype=float32) is not an element of this graph. 解决方法 import tensorflow as tfgraph = tf.get_default......

hc321
今天
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部