图片格式转换
- 格式:doc
- 大小:36.00 KB
- 文档页数:14
jpg格式的广泛应用性,想必就不用为大家去解释了。
图片格式的不兼容,会带来很多的麻烦,这时候就需要将图片进行转换,格式的转换的方法有很多,今天就教大家怎么将图片转为jpg格式吧!
1、首先就是要在电脑上运行迅捷图片格式转换器,建议在官网运行安装,没有广告插件的影响;
2、安然后双击桌面的快捷方式打开软件,会看到除了对格式转
换之外,还可以对图片压缩,改变大小;
3、选择软件默认的图片格式转换的功能进行添加图片,如果要添加多张图片的话,可以用ctrl的组合键,或者直接的点击添加文件夹,就能批量的添加多张图片;
4、图片都添加好后,就能开始转换参数的设置,看到页面下方的输出格式,进行下拉选择,根据自己的需求选择格式,jpg的格式最为常见。
同时对文件的保存路径可以定义的修改;
5、最后点击开始转换的按钮,图片转换的进度加载完毕后,就能在文件保存处进行查看。
转换图片的方法有很多,所以我们不求会所有的方法,了解一两个还是有必要的,上面就是教大家怎么将图片转为jpg格式的介绍,希望可以帮助到你!。
如果我们需要保存一些非常重要的图片,我们通常会将图片保存为JPG格式图片。
因为JPG更能生动的表现图片的效果。
那么图片怎么转为JPG呢?大家可以参考下面这两种图片转JPG的方法。
一、在线网站转换
网址:迅捷PDF在线转换器
操作步骤:
1、在浏览器中打开上面的网址进入网站,然后在网站首页找到“文档转换”。
点击其中的“转成JPG”进入相关操作界面。
2、然后点击页面中的“点击选择文件”将图片添加进去即可。
3、接着点击页面中的“继续添加”可以添加多个图片批量转为JPG格式,点击“获取二维码”或者是“立即下载”可以保存转换好的JPG文件。
这个在线网站功能丰富,不仅能实现PDF转Word,还能实现PDF压缩,图片转文字等功能哦,一款多用。
二、转换器转换
借助转换器:迅捷PDF转换器
免费下载
软件介绍:
迅捷PDF转换器是一款多功能的PDF转换软件。
它不仅可以完成PDF文件与其他文件之间的相互转换,如PDF转JPG还可以完成WPS转换、CAD转转换、图片转换。
操作步骤:
1、在迅捷PDF转换器的“图片格式转换”界面中,点击“图片转JPG”。
然后点击页面中的“点击或拖拽文件添加”将图片文件添加进去。
2、接着在页面中设置文件的输出目录。
然后点击“开始转换”就可以了。
3、转换完成之后,可以点击页面中的“打开”图片查看JPG图片。
以上就是图片转JPG的两种方法,大家可以根据自己的需要选择适合自己的方法,相信这两种方法都可以帮到你。
如何把图片转换成pdf格式?图片转文档用这招!
PDF文档是一种非常便捷的文件格式,相对比Word文档来说更为好用,之所以PDF文档深受用户们的喜爱,那就是因为PDF文档可以和其他文件格式互相转换。
除了可以将Word 文档转换成为PDF文档之外,就连图片也是可以转换成为PDF文档的,这样转换之后就可以直接编辑图片上面的内容信息了,那么如何把图片转换成pdf格式呢?
图片和PDF文档属于两种不同的文件格式,想要完整无损的把图片转换成PDF文档,那就需要借助专业的可靠的转换工具,不然肯定是会出现各种问题的。
小孙在公司里面做的是运营,平时编辑文章的时候会用到很多图片,他用的转换工具叫做万能图片转换器,这款工具能够将图片转换成为多种格式。
除了能够支持图片格式转换之外,这款工具还可以制作证件照、给图片增加或者删除水印等等,下面就让我们来一起看看这款工具如何把图片转换成pdf格式吧!
第一步:大家需要转换图片格式的时候,就可以把这款转换工具添加到自己的手机上然后进行操作,在手机浏览器上面直接搜索这款工具的官方网站,或者在应用商店里面搜索工具的名字,也是可以添加工具的。
第二步:成功添加好工具之后,下面我们就可以打开工具来使用了,在工具的首页中我们可以看到很多选项,其中就有“图片转PDF”这个工具。
第三步:进入图片转换的工具页面之后,我们就可以上传图片了,无论是什么类型的图片都是可以上传的,图片上传成功之后,大家可以设置一下转换的样式,最后点击一下“下一步”按钮就可以了。
第四步:等到图片转换好了之后,大家将转换成功的PDF文档保存到手机里面就可以了。
如何把图片转换成pdf格式想必大家都已经学会了吧!这款转换工具确实很好用,能够完美的把图片转换成为多种格式,建议大家去尝试使用一下哦。
电脑PNG图片转换成JPG的技巧有哪些win7系统会需要转换图片格式,比如将png图片转换成jpg格式,或者将jpg格式的图片转换成png格式等,很多用户不知道如何在win7系统下png图片转换成jpg格式,其实转换图片的方法有很多种,店铺向大家介绍三种转换图片的方法,感兴趣的用户可以一起看看,希望这篇文章对大家有所帮助!电脑PNG图片转换成JPG的技巧电脑PNG图片转换成JPG的技巧一:通过重命名的方法转换。
1、在电脑中找到要转换成jpg格式的png图片;2、然后鼠标右键点击该png图片,在弹出的菜单中,点击“重命名”;3、然后在重命名的图片输入框里,如下图点击选择png;4、接下来如下图将png直接修改成jpg;5、将png修改成jpg后,在修改输入框外边,点击下鼠标,这时png图片的格式即成功修改成jpg格式了。
电脑PNG图片转换成JPG的技巧二:通过属性转换。
1、右键点击png图片,在弹出的菜单中,点击“属性”;2、打开该图片的属性窗口,如下图点击选择该图片的扩展名png;3、将png修改成jpg,然后点击“确定”,这样再去看图片,图片的格式就成功修改了。
电脑PNG图片转换成JPG的技巧三:通过美图秀秀软件转换1、如果有批量的png图片要转换成jpg格式,可以打开美图秀秀软件;2、进入美图秀秀界面,点击“批量处理”;3、进入美图秀秀批处理界面,可以点击添加多张图片,也可以直接将图片拖进来,如果将要批量处理的图片放在了一个文件夹里,就可以点击“添加文件夹”;4、弹出浏览计算机的窗口,找到文件夹选择后,点击“确定”;5、然后文件夹里的全部图片就都添加进来了,此处小编文件夹里的80张图片都添加进来了;6、然后在软件界面右上方点击“更多”;7、之后在下方弹出格式,点击“不改变格式”,然后在下方弹出框中选择“jpg”即可;8、处理好后,在软件界面右下角,可以选择另存照片的路径,如果需要覆盖原图,也可以点击覆盖原图,最后点击“保存”即可。
免费jpg格式图片转换器免费 JPG 格式图片转换器在数字化的时代,图片成为了我们传递信息、表达情感、记录生活的重要方式。
而在众多的图片格式中,JPG 格式以其广泛的兼容性和相对较小的文件大小,被广泛应用于各种场景。
然而,有时我们可能会遇到需要将其他格式的图片转换为 JPG 格式的情况,这时候,一款好用的免费 JPG 格式图片转换器就显得至关重要。
什么是图片格式转换?简单来说,就是将一种图片格式的文件转换为另一种格式的文件,以满足不同的需求。
比如,你有一张 PNG 格式的图片,但某个应用程序只支持JPG 格式,这时就需要进行格式转换。
免费 JPG 格式图片转换器的出现,为我们解决了不少麻烦。
首先,它节省了我们的费用开支。
不必为了进行简单的图片格式转换而去购买昂贵的软件。
其次,它方便快捷。
只需要几个简单的步骤,就能完成转换,大大提高了工作效率。
那么,如何选择一款适合自己的免费 JPG 格式图片转换器呢?这需要考虑多个方面。
功能是首要的考虑因素。
一款好的转换器应该支持多种常见的图片格式,不仅仅是 PNG 转 JPG,还应该包括 BMP、GIF 等格式的转换。
而且,它应该能够对图片的尺寸、分辨率、色彩等进行调整,以满足不同的需求。
操作的简便性也非常重要。
对于大多数非专业用户来说,复杂的操作界面和繁琐的步骤会让人望而却步。
一个直观、简洁的操作界面,加上清晰易懂的操作指引,能让用户轻松上手。
转换速度也是不能忽视的一点。
谁也不想在转换一张图片上花费太多的时间,尤其是当需要处理大量图片时,快速的转换速度能节省不少时间。
另外,转换后的图片质量也是关键。
我们希望转换后的 JPG 图片能够保持清晰、色彩准确,不会出现失真、模糊等问题。
接下来,给大家介绍几款常见的免费 JPG 格式图片转换器。
首先是“格式工厂”。
这是一款功能强大且广为人知的多媒体格式转换工具,不仅支持图片格式转换,还能转换视频、音频等格式。
在图片转换方面,它支持几乎所有常见的图片格式,操作简单,只需选择要转换的图片和目标格式,然后点击开始转换即可。
将图片转换成Word格式文档的技巧如何图片转换word文档?在Word文档中,我们可以对图片进行编辑,例如裁剪、旋转、调整大小等操作。
如果我们需要对图片进行编辑,那么就需要将其转换成Word文档。
Word文档中的图片编辑功能非常完善,可以帮助我们快速地调整图片大小、颜色、亮度、对比度等属性。
此外,Word还提供了多种图片样式和效果,可以让图片更加生动、有趣。
今天教大家两个方法图片转Word。
如果您需要将一张图片转换成Word文档,可以按照以下步骤进行操作:
1、在Word文档中,点击“插入”选项卡并选择“图片”选项
2、选择您想要插入的图片并点击“插入”
3、在图片上右键点击并选择“另存为图片”
4、选择您想要保存的文件夹并将保存格式设置为“JPEG”
5、打开一个新的Word文档并选择“插入”选项卡
6、选择“图片”选项并找到您刚才保存的JPEG文件
7、点击“插入”并您现在就可以在Word文档中看到您的图片了
这种方法是比较简单的方法,但请注意,这种方法可能会导致图片质量的损失,因为JPEG是一种有损的图像格式。
如果您需要高质量的图像,建议使用其他转换方法,例如使用迅捷OCR文字识别软件或专业图像转换软件。
学会使用Adobe Photoshop进行批量图片格式转换随着科技的迅猛发展,我们生活中离不开图片。
图片格式的转换在很多场合中都是很常见的需求,而对于批量转换图片格式,Adobe Photoshop无疑是一个非常强大的工具。
在本文中,我们将向大家介绍如何使用Adobe Photoshop来进行批量图片格式转换。
首先,进入Adobe Photoshop软件,点击菜单栏中的“文件”选项,并选择“脚本”子菜单中的“图像处理器”。
在弹出的“图像处理器”对话框中,我们可以进行一系列的设置。
在“图像处理器”对话框的“源文件夹”中,选择需要转换格式的图片所在的文件夹。
然后,在“保存位置”中选择目标文件夹,这是转换后的图片将保存的位置。
接下来,在“文件类型”中,选择要转换成的图片格式。
例如,如果我们想将JPEG格式的图片转换成PNG格式的图片,就需要在“文件类型”中选择PNG。
除了选择要转换成的图片格式,我们还可以对转换后的图片进行一些其他的操作。
比如,可以在“图像尺寸”中设定转换后的图片大小,或者在“图像质量”中设定转换后的图片质量。
这些操作都可以根据自己的需求进行设置。
在设置完以上参数后,点击对话框右下角的“运行”按钮,Adobe Photoshop就会开始对选中文件夹中的图片进行批量格式转换。
在转换过程中,我们可以看到进度条显示转换的进度,同时也可以点击“终止”按钮来中止转换。
值得一提的是,Adobe Photoshop在进行批量图片格式转换时,非常高效且稳定。
它可以同时处理大量的图片,并且能够保持转换后的图片质量与原始图片一致。
这无疑为用户提供了极大的便利。
除了批量图片格式转换,Adobe Photoshop还具有许多其他强大的功能。
比如,它可以进行图片的编辑、修饰、合成等操作,满足用户对于图片处理的多样化需求。
同时,Adobe Photoshop也支持批量处理图片的其他操作,如调整亮度、对比度,应用滤镜效果等。
图片如何转换格式图片如何转换格式?有时想将手中的图片上传至博客、论坛、微博等各网站中时,就会遇到某些格式的图片不允许上传的情况,这时候,我们就需要使用图像处理软件将它们转换成适合上传的格式。
那怎样的图像处理软件是最适合的呢?相信大家都会说,第一,软件设计要人性化,易上手易操作;第二,处理效果要保证高品质。
能够在这两者中获得双赢的当属国内第一图像处理软件《彩影》。
下面就让我带大家一起使用它快速转换高质量图片格式的多种方法。
一、批量将图片转换成jpg格式jpg是常见的图片格式,彩影不但支持将单张图片转换成jpg格式,它的“JPG 格式批量转换”功能还能帮我们实现批量把图片转换成jpg格式。
点击顶部菜单栏“相片文件”下拉菜单的“JPG格式批量转换”即会弹出下图对话框,选择所有图片所在的目录,输入要设置的图片尺寸,再为转换后的图片选择一个输出目录,即可快速将设定好大小的jpg图片快速转换出来,还能保证清晰细腻的高画质。
二、单张转换需要的图片格式彩影支持导入几乎所有的图片格式如jpg,jpeg,png,gif,ico,pcx等等,还有一些我们自己编辑的bmp图片,由于体积比较大,很多网站都不支持,使用彩影就可以将其转换成常见的格式,在软件中部双击并添加要转换格式的图片,或从照片所在目录将照片直接拖到相片列表。
彩影支持多图片并发处理技术,支持一次性添加多个图片处理,导入图片后,可在下面的图片池中点击图片的缩略图,以快速切换到对应相片的编辑窗口。
导入图片后,直接点击图片池上面快捷工具栏的“保存”按钮,即可选择格式进行保存,彩影可导出的格式非常多,如jpg、png、gif、bmp等等。
三、将图片转换成GIF动画图片彩影可将多张图片快速制作成现在非常流行的非主流GIF动画图片,将要制作成闪图的多张图片导入彩影后,点击顶部菜单栏“相片文件”下的“GIF动态闪图制作”,将弹出如下的“GIF动态闪图制作”对话框,在该对话框中,点击左栏目要制作成GIF的图片,再“插入”右栏的方框内即可,如图,还可以自定义设置是否循环显示GIF动画,细节处更见人性化。
jpg图片怎样转成cad格式JPG图片是一种常见的图像格式,通常用于储存照片和其他图片。
而CAD(计算机辅助设计)格式则是一种专业的图形设计格式,用于制作各种工程图纸、产品图纸、建筑设计图纸等。
在某些情况下,我们可能需要将JPG图片转换成CAD格式,以方便后续的修改和处理。
下面我们就来介绍一些常见的转换方法。
一、手动追踪法这是一种比较古老的方法,需要使用CAD软件中的“追踪”工具,手动追踪JPG图片中的每一个线条、弧线和曲线等元素,然后用CAD中相应的工具重新绘制,最终得到一个与原图形相似的CAD图形。
但是这种方法需要大量的时间和精力,且对于复杂的图形可能会出现许多错误和不符合实际的部分,因此并不太适合初学者或人数不多的小团队。
二、使用CAD插件针对JPG转CAD的需求,有些CAD软件提供了特殊的插件来进行转换,如Autodesk的“Raster Design”插件。
该插件具有自动追踪和转换功能,可以高效地将JPG图片转换成CAD格式,且转换的准确度也比手动追踪高得多。
但是需要注意的是,插件通常只适用于特定的CAD软件版本,并且需要单独购买。
三、使用专业的转换工具除了CAD软件自带的插件外,还有一些专业的转换工具可以将JPG图片转换成CAD格式,如“Any DWG to JPG Converter”和“JPG to CAD Converter”等。
这些工具通常提供批量转换功能,可以同时转换多个JPG文件,并且支持输出多种CAD格式,如DWG、DXF等。
使用这些工具的优点是速度快、准确度高,且不需要特定的CAD软件支持。
但需要注意的是,这些工具可能需要付费购买,并且在使用过程中可能会出现一定的兼容性问题。
四、在线转换工具除了以上几种方法外,还可以选择将JPG图片上传至在线转换工具上,如“Zamzar”、“Online Convert”等。
这些工具可以将JPG图片转换成多种格式,包括CAD格式,且可以免费使用。
怎么把照片改成jpg格式在我们的日常生活和工作中,常常会遇到需要将照片格式转换为jpg 格式的情况。
比如某些网站上传图片只支持 jpg 格式,或者为了方便存储和传输,也会想要把其他格式的照片改成 jpg 格式。
那么,究竟怎样才能实现这个操作呢?下面就来给大家详细介绍几种常见且实用的方法。
方法一:使用图像编辑软件像大家熟知的Adobe Photoshop 就是一款功能强大的图像编辑软件。
用它来转换照片格式非常简单。
首先,打开 Photoshop 软件,然后点击“文件”菜单,选择“打开”,找到您想要转换格式的照片。
照片打开后,再次点击“文件”菜单,这次选择“存储为”。
在弹出的“存储为”对话框中,选择“JPEG”格式,然后可以设置图像的质量、分辨率等参数。
一般来说,如果只是用于普通的网络分享或者打印,选择中等质量就可以了。
设置好后,点击“保存”,这样照片就成功转换为 jpg 格式啦。
除了Photoshop,还有一些免费或者相对简单易用的图像编辑软件,比如 GIMP。
它的操作步骤与 Photoshop 类似。
方法二:使用在线工具如果您不想下载安装软件,那么在线工具就是一个不错的选择。
有很多在线图片格式转换网站,比如 Convertio、Zamzar 等。
以 Convertio 为例,打开网站后,您会看到一个很简洁的界面。
点击“选择文件”按钮,从您的电脑中选择要转换的照片。
选好照片后,在“目标格式”下拉菜单中选择“JPG”。
然后,点击“转换”按钮,等待一会儿,转换完成后,点击“下载”就可以得到转换后的jpg 格式照片了。
需要注意的是,使用在线工具转换照片时,要确保您的网络连接稳定,并且注意保护个人隐私,因为您需要上传照片到第三方网站。
方法三:利用电脑系统自带的画图工具对于 Windows 系统用户来说,系统自带的画图工具就可以完成照片格式的转换。
找到您要转换的照片,右键单击它,选择“打开方式”,然后选择“画图”。
常见图象格式转换技术1. ICO图标转换BMP格式2. 32x32 BMP格式图象转换为ICO格式3.转换BMP->JPEG文件格式4.JPEG 转换为BMP函数5.Bmp转换为JPEG文件格式函数-------------------------------------------------------------------------------------------------------------------------1.Chinese : ICO图标转换BMP格式English :(Conversion from ICO to BMP)--------------------------------------------------------varIcon : TIcon;Bitmap : TBitmap;beginIcon := TIcon.Create;Bitmap := TBitmap.Create;Icon.LoadFromFile('c:picture.ico');Bitmap.Width := Icon.Width;Bitmap.Height := Icon.Height;Bitmap.Canvas.Draw(0, 0, Icon );Bitmap.SaveToFile('c:picture.bmp');Icon.Free;Bitmap.Free;===================================2.Chinese: 32x32 BMP格式图象转换为ICO格式English :32x32 bit Bitmaps to ICO's-----------------------------------unit main;interfaceusesWindows, Messages, SysUtils, Classes, Graphics, Controls, Forms,Dialogs,ExtCtrls, StdCtrls;typeTForm1 = class(TForm)Button1: TButton;Image1: TImage;Image2: TImage;procedure Button1Click(Sender: TObject);procedure FormCreate(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);var winDC, srcdc, destdc : HDC;oldBitmap : HBitmap;iinfo : TICONINFO;beginGetIconInfo(Image1.Picture.Icon.Handle, iinfo);WinDC := getDC(handle);srcDC := CreateCompatibleDC(WinDC);destDC := CreateCompatibleDC(WinDC);oldBitmap := SelectObject(destDC, iinfo.hbmColor);oldBitmap := SelectObject(srcDC, iinfo.hbmMask);BitBlt(destdc, 0, 0, Image1.picture.icon.width,Image1.picture.icon.height,srcdc, 0, 0, SRCPAINT);Image2.picture.bitmap.handle := SelectObject(destDC, oldBitmap);DeleteDC(destDC);DeleteDC(srcDC);DeleteDC(WinDC);image2.Picture.Bitmap.savetofile(ExtractFilePath(Application.ExeName) + 'myfile.bmp');end;procedure TForm1.FormCreate(Sender: TObject);beginimage1.picture.icon.loadfromfile('c:myicon.ico');end;================================================================== 3. Chinese:转换BMP->JPEG文件格式Englsh:convert the bitmap into a JPEG file format------------------------------------------------------------------varMyJpeg: TJpegImage;Image1: TImage;beginImage1:= TImage.Create;MyJpeg:= TJpegImage.Create;Image1.LoadFromFile('TestImage.BMP'); // 读取Bitmap文件MyJpeg.Assign(Image1.Picture.Bitmap);objectMyJpeg.SaveToFile('MyJPEGImage.JPG'); //保存JPEGend;--------------------------------------------------------------------4.JPEG 转换为BMP函数procedure Jpg2Bmp(const source,dest:string);varMyJpeg: TJpegImage;bmp: Tbitmap;beginbmp:=tbitmap.Create;MyJpeg:= TJpegImage.Create;myjpeg.LoadFromFile(source);bmp.Assign(myjpeg);bmp.SaveToFile(dest);finallybmp.free;myjpeg.Free;end;end;----------------------------------------------------------5.Bmp转换为JPEG文件格式函数----------------------------------------------------------procedure Bmp2Jpg(const source,dest:string;const scale:byte); varMyJpeg: TJpegImage;Image1: TImage;beginImage1:= TImage.Create(application);MyJpeg:= TJpegImage.Create;tryImage1.Picture.Bitmap.LoadFromFile(source);MyJpeg.Assign(Image1.Picture.Bitmap);pressionQuality:=scale;press;MyJpeg.SaveToFile(dest);finallyimage1.free;myjpeg.Free;end;end;Delphi常见图象格式转换技术(二)1.TxT 转换为GIF2.WMF格式转换为BMP格式3.BMP格式转换为WMF格式4.TBitmaps to Windows Regions----------------------------------------------------------------------- TxT 转换为GIF------------------------------------------------procedure TxtToGif (txt, FileName: String);vartemp: TBitmap;GIF : TGIFImage;begintemp:=TBitmap.Create;trytemp.Height :=400;temp.Width :=60;temp.Transparent:=True;temp.Canvas.Brush.Color:=colFondo.ColorValue;:=Fuente.FontName;temp.Canvas.Font.Color:=colFuente.ColorValue;temp.Canvas.TextOut (10,10,txt);Imagen.Picture.Assign(nil);GIF := TGIFImage.Create;tryGIF.Assign(Temp);//保存GIFGIF.SaveToFile(FileName);Imagen.Picture.Assign (GIF);finallyGIF.Free;end;Finallytemp.Destroy;End;end;--------------------------------------------------------------------- 2.WMF格式转换为BMP格式-------------------------------------------------------------------- procedure WmfToBmp(FicheroWmf,FicheroBmp:string); varMetaFile:TMetafile;Bmp:TBitmap;beginMetafile:=TMetaFile.create;{Create a Temporal Bitmap}Bmp:=TBitmap.create;{Load the Metafile}MetaFile.LoadFromFile(FicheroWmf);{Draw the metafile in Bitmap's canvas}with Bmp dobeginHeight:=Metafile.Height;Width:=Metafile.Width;Canvas.Draw(0,0,MetaFile);{Save the BMP}SaveToFile(FicheroBmp);{Free BMP}Free;end;{Free Metafile}MetaFile.Free;end;--------------------------------------------------------------------- 3.BMP格式转换为WMF格式--------------------------------------------------------------------- procedure BmpToWmf (BmpFile,WmfFile:string);varMetaFile : TMetaFile;MFCanvas : TMetaFileCanvas;BMP : TBitmap;begin{Create temps}MetaFile := TMetaFile.Create;BMP := TBitmap.create;BMP.LoadFromFile(BmpFile);{Igualemos tama駉s}{Equalizing sizes}MetaFile.Height := BMP.Height;MetaFile.Width := BMP.Width;{Create a canvas for the Metafile} MFCanvas:=TMetafileCanvas.Create(MetaFile, 0); with MFCanvas dobegin{Draw the BMP into canvas}Draw(0, 0, BMP);{Free the Canvas}Free;end;{Free the BMP}BMP.Free;with MetaFile dobegin{Save the Metafile}SaveToFile(WmfFile);{Free it...}Free;end;end;---------------------------------------------------------------------4.TBitmaps to Windows Regions---------------------------------------------------------------------function BitmapToRegion(bmp: TBitmap; TransparentColor: TColor=clBlack; RedTol: Byte=1; GreenTol: Byte=1; BlueTol: Byte=1): HRGN;constAllocUnit = 100;typePRectArray = ^TRectArray;TRectArray = Array[0..(MaxInt div SizeOf(TRect))-1] of TRect;varpr: PRectArray;h: HRGN;RgnData: PRgnData;lr, lg, lb, hr, hg, hb: Byte;x,y, x0: Integer;b: PByteArray;ScanLinePtr: Pointer;ScanLineInc: Integer;maxRects: Cardinal;beginResult := 0;{ Keep on hand lowest and highest values for the "transparent" pixels }lr := GetRValue(TransparentColor);lg := GetGValue(TransparentColor);lb := GetBValue(TransparentColor);hr := Min($ff, lr + RedTol);hg := Min($ff, lg + GreenTol);hb := Min($ff, lb + BlueTol);bmp.PixelFormat := pf32bit;maxRects := AllocUnit;GetMem(RgnData,SizeOf(RGNDATAHEADER) + (SizeOf(TRect) * maxRects)); trywith RgnData^.rdh dobegindwSize := SizeOf(RGNDATAHEADER);iType := RDH_RECTANGLES;nCount := 0;nRgnSize := 0;SetRect(rcBound, MAXLONG, MAXLONG, 0, 0);end;ScanLinePtr := bmp.ScanLine[0];ScanLineInc := Integer(bmp.ScanLine[1]) - Integer(ScanLinePtr);for y := 0 to bmp.Height - 1 dobeginx := 0;while x < bmp.Width dobeginx0 := x;while x < bmp.Width dobeginb := @PByteArray(ScanLinePtr)[x*SizeOf(TRGBQuad)];// BGR-RGB: Windows 32bpp BMPs are made of BGRa quads (not RGBa)if (b[2] >= lr) and (b[2] <= hr) and(b[1] >= lg) and (b[1] <= hg) and(b[0] >= lb) and (b[0] <= hb) thenBreak; // pixel is transparentInc(x);end;{ test to see if we have a non-transparent area in the image }if x > x0 thenbegin{ increase RgnData by AllocUnit rects if we exceeds maxRects }if RgnData^.rdh.nCount >= maxRects thenbeginInc(maxRects,AllocUnit);ReallocMem(RgnData,SizeOf(RGNDATAHEADER) + (SizeOf(TRect) * MaxRects));end;{ Add the rect (x0, y)-(x, y+1) as a new visible area in the region }pr := @RgnData^.Buffer; // Buffer is an array of rectswith RgnData^.rdh dobeginSetRect(pr[nCount], x0, y, x, y+1);{ adjust the bound rectangle of the region if we are "out-of-bounds" }if x0 < rcBound.Left then rcBound.Left := x0;if y < rcBound.Top then rcBound.Top := y;if x > rcBound.Right then rcBound.Right := x;if y+1 > rcBound.Bottom then rcBound.Bottom := y+1;Inc(nCount);end;end; // if x > x0if RgnData^.rdh.nCount = 2000 thenbeginh := ExtCreateRegion(nil, SizeOf(RGNDATAHEADER) + (SizeOf(TRect) * maxRects), RgnData^);if Result > 0 thenbegin // Expand the current regionCombineRgn(Result, Result, h, RGN_OR);DeleteObject(h);endelse // First region, assign it to ResultResult := h;RgnData^.rdh.nCount := 0;SetRect(RgnData^.rdh.rcBound, MAXLONG, MAXLONG, 0, 0);end;Inc(x);end; // scan every sample byte of the imageInc(Integer(ScanLinePtr), ScanLineInc);end;{ need to call ExCreateRegion one more time because we could have left }{ a RgnData with less than 2000 rects, so it wasn't yet created/combined }h := ExtCreateRegion(nil, SizeOf(RGNDATAHEADER) + (SizeOf(TRect) * MaxRects), RgnData^);if Result > 0 thenbeginCombineRgn(Result, Result, h, RGN_OR);DeleteObject(h);endelseResult := h;finallyFreeMem(RgnData,SizeOf(RGNDATAHEADER) + (SizeOf(TRect) * MaxRects)); end;----------------------------------------------------------------------------------。