delphi根据不同图片生成不规则窗口的实现(仅限于BMP格式)
unit CreateImageForm;
interface
uses
Windows, SysUtils, Variants, Classes, Graphics;
procedure CreatRgnForm( Bmap: TBitMap; WColor: TColor; hand:THandle);
implementation
procedure CreatRgnForm( Bmap: TBitMap; WColor: TColor; hand:THandle);
var
rgn: HRgn;
dc, cdc: HDC;
x, y: integer;
p: Tpoint;
line: boolean;
color: Tcolor;
begin
dc := GetWindowDc(hand);
cdc := CreateCompatibleDc( dc );
SelectObject( cdc, Bmap.Handle );
//WColor := Img.Picture.Bitmap.Canvas.Pixels[0, 0];
//WColor := GetPixel( cdc, 0, 0 );
BeginPath( dc );
for x := 0 to Bmap.Width - 1 do
begin
line := false;
for y := 0 to Bmap.Height - 1 do
begin
color := GetPixel( cdc, x, y );
if not( color=WColor) then
begin
if not line then
begin
line := true;
p.X := x;
p.Y := y;
end;
end;
if ( color=WColor)or( y=Bmap.Height - 1 ) then
begin
if line then
begin
line := false;
MoveToEx( dc, p.X, p.Y, nil );
LineTo(dc, p.X, y );
LineTo(dc, p.X + 1, y );
LineTo(dc, p.X + 1, p.Y );
CloseFigure( dc );
end;
end;
end;
end;
EndPath( dc );
Rgn := PathToRegion( dc );
ReleaseDc( hand, dc );
SetWindowRgn( hand , rgn, true );
end;
end.
如此调用就可以了
procedure TForm1.FormCreate(Sender: TObject);
var
color: TColor;
w1: TBitMap;
begin
w1 := TBitMap.Create;
w1.Assign( Image1.Picture.Bitmap );
color := w1.Canvas.Pixels[0, 0];
CreatRgnForm( w1, color, handle);
end.
delphi根据不同图片生成不规则窗口的实现(仅限于BMP格式)的更多相关文章
- QT笔记之不规则窗口的实现
QT实现的不规则窗口,是根据图片的形状显示 1.去标题栏 2.设置窗口背景为透明色 3.最后给窗口设置背景色 注:背景图为镂空的 格式为.png 图片资源下载:http://pan.baidu.com ...
- [原创]DELPHI木马DIY之生成服务端
文章作者:上帝的禁区信息来源:邪恶八进制信息安全团队(www.eviloctal.com)DELPHI木马DIY之生成服务端 我在这里就生成简单的服务端,为什么不先讲服务端的隐藏?因为我觉得生成服 ...
- QT:不规则窗口的实现
主要思路:1:将窗体设为Qt::FramelessWindowHint(去掉标题栏).2:用一幅有部分区域是透明的图片作为程序的界面,并将图片透明的地方设为穿透. 3:重载程序的鼠标事件. 运行时截图 ...
- thinkphp3.2与phpexcel带图片生成 完美案例
thinkphp3.2与phpexcel完美案例 // 导出exl public function look_down(){ $id = I('get.id'); $m = M ('offer_goo ...
- phpcms v9图片生成缩略图变成黑色解决方法
今天客户反映,上传的图片生成缩略图有的图片变成黑色,出现问题就百度了一下,有不少网友也遇到这样的问题,但是官方论坛也没有给出解决办法,那还得靠自己解决了,于是就研究phpcms v9 图片压缩代码.打 ...
- 将图片在指定窗口中显示-OpenCV应用学习笔记一
1.OpenCV模块划分 OpenCV其实就是一堆用C和C++语言来实现计算机视觉算法的源代码文件:例如C接口函数cvCany()实现了Canny边缘提取算法,我们可以直接将这些源代码添加到自己的软件 ...
- PB中用oracle的存储过程返回记录集做数据源来生成数据窗口,PB会找不到此存储过程及不能正常识别存储过程的参数问题(转)
(转)在PB中用oracle的存储过程返回记录集做数据源来生成数据窗口 首先oracle的存储过程写法与MSSQL不一样,差别比较大. 如果是返回数据集的存储过程则需要利用oracle的包来定义游标. ...
- 验证码图片生成工具类——Captcha.java
验证码图片生成工具,使用JAVA生成的图片验证码,调用getRandcode方法获取图片验证码,以流的方式传输到前端页面. 源码如下:(点击下载 Captcha.java) import java. ...
- Windows SDK 实现不规则窗口介绍
不规则窗口在程序界面设计中能提供非常好的用户体验,以下是我程序运行时的效果图: 以下是代码,注意需要修改一些简单的位置,如资源ID,项目的头文件等,这些是根据你创建的win32程序的项目名改变的,我的 ...
随机推荐
- linux磁盘空间占用分析
df -h # 查看目前磁盘空间占用 cd / # 切换到根目录 du -sh # 查询每个目录占用的大小 lsof | grep delete # 查看当前系统打开文件 # 删除不使用的文件, 如果 ...
- Unity Download
{ https://unity.cn/releases }
- 每天一个Linux命令:man(0)
man man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助.配置文件帮助和编程帮助等信息. 格式 man [-adfhktwW] [section] [-M path] ...
- CSS Id 和 Class
id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器.直线电机哪家好 id 选择器 id ...
- 【Flutter学习】基本组件之图片组件Image
一,概述 Image(图片组件)是显示图像的组件,一个显示图片的widget,支持图像格式:JPEG,PNG,GIF,动画GIF,WebP,动画WebP,BMP和WBMP. Image组件有多种构造函 ...
- BulkLoad加载本地文件到HBase表
BulkLoad加载文件到HBase表 1.功能 将本地数据导入到HBase中 2.原理 BulkLoad会将tsv/csv格式的文件编程hfile文件,然后再进行数据的导入,这样可以避免大量数据导入 ...
- spring AOP (使用AspectJ的xml方式 的aop实现) (7)
目录 一.定义计算器接口跟实现类 二.定义两个切面,日志切面和验证切面 三.在xml中配置切面 四.测试类 一.定义计算器接口跟实现类 public interface ArithmeticCalcu ...
- thinkphp5.0多条件模糊查询以及多条件查询带分页如何保留参数
1,多条件模糊查询 等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id′]=array(‘eq′,100);不等于:map[‘id’] = array(‘neq’,100 ...
- 带头节点的单链表-------C语言实现
/***************************************************** Author:Simon_Kly Version:0.1 Date:20170520 De ...
- 洛谷 P4173 残缺的字符串 (FFT)
题目链接:P4173 残缺的字符串 题意 给定长度为 \(m\) 的模式串和长度为 \(n\) 的目标串,两个串都带有通配符,求所有匹配的位置. 思路 FFT 带有通配符的字符串匹配问题. 设模式串为 ...