文档章节

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

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 238
阅读 9
收藏 0
点赞 0
评论 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

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
GDI+图像处理学习笔记——改变图像的透明度

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

晨曦之光 ⋅ 2012/05/23 ⋅ 0

关于GDI+在透明Bitmap上绘制时边缘有黑色重影的解决(WPF中)

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

q886yes ⋅ 04/21 ⋅ 0

photoshop教程之如何为照片添加光彩照片

当你想要做一些有点不同的事情时,闪光灯可以添加到你的图像中,是一件有趣的事情。无论是让自己的问候卡片个性化,让孩子们的图像更加神奇,还是您喜欢闪闪发光,我们都会向您展示一种有趣而...

sum_mer521 ⋅ 01/30 ⋅ 0

ColorMatrix 彩色矩阵

选择自hbzxf 的 Blog 首先对装配脑袋给出上两片文章的友好回复,还有网友Fisherman一起探讨ColorMatrix话题表示感谢! ColorMatrix (彩色矩阵) 类位于System.Drawing.Imaging命名空间 先看看...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

[翻译]PyCairo指南--透明度

透明度 在这份PyCairo指南的这个部分,我们将讨论透明度。我们将提供一些基本的定义和三个有趣的透明度的例子。 透明度是指透过一种材料能够看到事物的品质。理解透明度最简单的方法就是想象...

WolfCS ⋅ 2013/05/24 ⋅ 0

VC实现多格式图像的转换

色彩鲜艳漂亮的高品质图像,一个个形象生动的Windows图标,高速运动、活灵活现的三维动画,这些无一不显示出程序设计者的艺术才华。在程序设计中,图像处理已经成为每个程序员的必修课。 在V...

余二五 ⋅ 2017/11/06 ⋅ 0

C#中基于GDI+(Graphics)图像处理系列之任意角度旋转图像

简介 图像旋转功能在实际使用中出现得不多,Image自带RotateFlip方法可以简单的实现90、180等角度的旋转或者翻转,但是如果要实现任意角度的旋转该怎么做?对于一个有经验的同学估计不到半天...

lhtzbj12 ⋅ 2017/01/05 ⋅ 0

使用GDI+绘制的360风格按钮控件

unit u360StyleButton; interface uses SysUtils, Classes, Controls, StdCtrls,Graphics, Messages, Windows, GDIPAPI, GDIPOBJ, GDIPUTIL; type TBtn360Style = class(TButton) private FB......

jingshishengxu ⋅ 2016/06/14 ⋅ 0

打开黑箱重要一步,MIT提出弥合视觉推理模型的性能与可解释性鸿沟

     近日,MIT 林肯实验室和 Planck Aerosystems 联合发布论文,提出一组可组合的视觉推理原语,并构建了 Transparency by Design network(TbD-net),通过整合注意力机制推进了模型透...

机器之心 ⋅ 03/17 ⋅ 0

Opencv2.4.9源码分析——Stitching(七)

7、融合 7.1 原理 在上一步中,虽然我们已经得到了接缝线,但如果只是简单的对接缝线的两侧选取不同的图像,那么对于重叠区域,在接缝线处的过度会出现不连贯的现象,在视觉上会显得有些突兀...

zhaocj ⋅ 01/03 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

金山WPS发布了Linux WPS Office

导读 近日,金山WPS发布了Linux WPS Office中文社区版新版本,支持大部分主流Linux系统,功能更加完善,兼容性、稳定性大幅度提升。本次更新WPS将首次在Linux提供专业办公文件云存储服务,实...

问题终结者 ⋅ 昨天 ⋅ 0

springboot2输出metrics到influxdb

序 本文主要研究一下如何将springboot2的metrics输出到influxdb maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-bo......

go4it ⋅ 昨天 ⋅ 0

微信小程序 - 选择图片显示操作菜单

之前我分享过选择图片这个文章,但是我在实际开发测试使用中发现一个问题在使用 wx.chooseImage 选择照片显示出第一格是拍照,后面是相册里的图片。这种实现之前说过了,效果如下。 但是你从...

hello_hp ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部