当前位置:文档之家› 24位bmp位图转换为24位ico图标(透明效果)

24位bmp位图转换为24位ico图标(透明效果)

24位bmp位图转换为24位ico图标(透明效果)
24位bmp位图转换为24位ico图标(透明效果)

32×32的24位bmp位图转换为24位ico图标

2009年03月03日星期二 10:25

不需任何控件和外部函数,单击窗体,输入bmp文件名和ico文件名就完成了,如果输入的文件名错误,将取消转换

Private Sub Form_Click()

On Error GoTo cancel

icoHead = Array(0, 0, 1, 0, 1, 0, 32, 32, 0, 0, 1, 0, 24, 0, 168, 12, 0, 0, 22, 0, 0, _

0, 40, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 128, 12)

Dim bmp(3125) As Byte, ico(3261) As Byte

begin:

bmpfile = InputBox("请输入要转换的bmp文件名(全路径)")

n = FileLen(bmpfile)

Open bmpfile For Binary As #1

Get #1, , bmp

Close #1

If bmp(18) <> 32 Or bmp(22) <> 32 Or n <> 3126 Then

m2 = MsgBox("文件不是32×32的24位位图,是否重新选择?", vbYesNo + 32)

If m2 = vbNo Then GoTo cancel

GoTo begin

End If

For i = 0 To 43

ico(i) = icoHead(i)

Next i

For i = 62 To 3133

ico(i) = bmp(i - 8)

Next i

AutoRedraw = True

ScaleMode = 3

Picture = LoadPicture(bmpfile) '在窗体上显示位图文件

For y = 31 To 0 Step -1

For x = 0 To 31 Step 8

For b = 0 To 7

ico(i) = ico(i) + 2 ^ (7 - b) * (-(Point(x + b, y) = RGB(192, 192, 192))) '把位图中颜色为RGB(192,192,192)的像素转换为透明

Next b

i = i + 1

Next x

Next y

icofile = InputBox("请输入要保存的ico文件名(全路径)")

Open icofile For Binary As #1

Put #1, , ico

Close #1

MsgBox "32×32的24位位图" & vbCrLf & bmpfile & vbCrLf & _

"已成功转换为24位图标" & vbCrLf & icofile, 64

MousePointer = 99 '这两句把转换成的图标作为窗体的鼠标图标,以查看效果

MouseIcon = LoadPicture(icofile)

Exit Sub

cancel:

MsgBox "转换被取消", 64

End Sub

转换原理:

宽和高都不小于4的24位位图,文件的前36个字节(第0~35字节)是24位位图的标记,其中第15~18字节记录着图片的宽度,第19~22字节记录着图片的高度,设首字节为第0字节,第i 字节的值为bmp(i),则对于宽和高都小于65536的24位位图,宽=bmp(17)*256+bmp(18),高

=bmp(21)*256+bmp(22),第36~53这18个字节不影响图片效果,文件的第54字节往后,每3个字节(24位)对应一个像素,所以文件大小为(54+宽*高*3)字节.32×32的24位位图文件大小为3126字节(记为第0~3125字节),前36个字节是

66,77,54,12,0,0,0,0,0,0,54,0,0,0,40,0,0,0,32,0,0,0,32,0,0,0,1,0,24,0,0,0,0,0,0,12 32×32的24位ico图标文件至少3262字节(记为第0~3261字节),前44个字节(第0~43字节)是32×32的24位ico图标的标记,第44~61这18个字节不影响图标效果,第62~3133这3072个字节(3072*8=32*32*24)每3个字节(24位)对应一个像素,记录着所有像素的颜色,这与32×32的24位位图的第54~3125字节的对应规则一致,第3134~3261这128字节(1024

位,128*8=32*32)每位对应一个像素,记录着每个像素是否透明,如果某个像素在这128字节中对应的那一位是1,表示该像素透明,是0则表示不透明.32×32的24位ico图标的前44个字节是0,0,1,0,1,0,32,32,0,0,1,0,24,0,168,12,0,0,22,0,0,0,

40,0,0,0,32,0,0,0,64,0,0,0,1,0,24,0,0,0,0,0,128,12

BMP格式结构详解

位图文件(B it m a p-File,BMP)格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(d evice-d ependent b itmap,DDB)文件格式。Windows 3.0以后的BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图(d evice-i ndependent b itmap,DIB)格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。BMP位图文件默认的文件扩展名是BMP或者bmp。 6.1.2 文件结构 位图文件可看成由4个部分组成:位图文件头(bitmap-file header)、位图信息头(bitmap-information header)、彩色表(color table)和定义位图的字节阵列,它们的名称和符号如表6-01所示。 表6-01 BMP图像文件组成部分的名称和符号 位图文件的组成结构名称符号 位图文件头(bitmap-file header)BITMAPFILEHEADE R bmfh 位图信息头(bitmap-information header)BITMAPINFOHEADE R bmih 彩色表(color table)RGBQUAD aColors[] 图像数据阵列字节BYTE aBitmapBits[ ] 位图文件结构可综合在表6-02中。 表6-02 位图文件结构内容摘要 偏移量域的名称大小内容 图像文件头0000h标识符 (Identifie r) 2 bytes两字节的内容用来识别位图的类型: ‘BM’ : Windows 3.1x, 95, NT, linux ‘BA’ :OS/2 Bitmap Array ‘CI’ :OS/2 Color Icon ‘CP’ :OS/2 Color Pointer ‘IC’ : OS/2 Icon ‘PT’ :OS/2 Pointer 0002h File Size 1 dword用字节表示的整个文件的大小 0006h Reserved 1 dword保留,设置为0 000Ah Bitmap Data Offset 1 dword从文件开始到位图数据开始之间的数据(bitmap data)之间的偏移量 000Eh Bitmap Header Size 1 dword位图信息头(Bitmap Info Header)的长度,用来 描述位图的颜色、压缩方法等。下面的长度表示: 28h - Windows 3.1x, 95, NT, … 0Ch - OS/2 1.x F0h - OS/2 2.x 0012h Width 1 dword位图的宽度,以像素为单位 0016h Height 1 dword位图的高度,以像素为单位 001Ah Planes 1 word位图的位面数 图像001Ch Bits Per Pixel 1 word每个像素的位数 1 - Monochrome bitmap

手把手教你如何将图标文件的英文名改为中文

手把手教你如何将图标文件的英文名改为中文 如果你在小[font=Times New Roman]P[/font] 中安装了许多应用软件和游戏,而这些程序的图标名称大部分都是英文的,看起来未免费劲,本文教你如何将它们改成中文,不需要懂得太多,一步一步的照着图示去做就是了。 ★所需基本制作工具:[font=Times New Roman]Hex Workshop [/font]和[font=Times New Roman]UltraEdi [/font] [font=Times New Roman][/font]图一:[img=99,109]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_0.jpg[/img] 图二:[img=94,98]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_1.jpg[/img] [font=Times New Roman]Hex Workshop[/font] 下载链接:[font=Times New Roman]https://www.doczj.com/doc/275192687.html,/yyrj/yyrj13/yyrj1300018.htm[/font] [font=Times New Roman]UltraEdit [/font]下载链接:[font=Times New Roman]https://www.doczj.com/doc/275192687.html,/soft/2249.html [/font] ★[font=Times New Roman]PC[/font] 操作系统:[font=Times New Roman]WIN98[/font] 或[font=Times New Roman]WINxp[/font] ★开始制作:以一个大家熟悉的屏幕截图软件[font=Times New Roman]Screenshot[/font] 为例,安装后在桌面显示的图标英文名称如图三: [img=209,321]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_2.jpg[/img] [font=Times New Roman]1、[size=3][/size][/font]通过[font=Times New Roman]PC[/font] 端软件[font=Times New Roman]PC_filemanager_Full[/font] 进入[font=Times New Roman]Screenshot[/font] 安装路径,找到它的图标文件[font=Times New Roman]Screenshot.aif,[/font] 将它复制后保存在[font=Times New Roman]PC[/font] 文件夹中待用[font=Times New Roman].[/font] [align=center]图四[font=Times New Roman]:[/font] [/align] [img=400,141]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_3.jpg[/img] [font=Times New Roman]2[/font] 、用[font=Times New Roman]Hex Workshop[/font] 打开该图标文件[font=Times New Roman]Screenshot.aif[/font] ,共[font=Times New Roman]10[/font] 个字节: [align=center]图五[font=Times New Roman]:[/font] [/align] [img=400,308]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_4.jpg[/img] [font=Times New Roman]3、[size=3][/size][/font]运行[font=Times New Roman]UltraEdit[/font] 软件,点击文件[font=Times New Roman]/[/font] 新建,进入操作界面,输入“屏幕抓图”四个汉字,然后点击[font=Times New Roman]10/16[/font] 进制选择按钮: [align=center]图六:[/align] [img=400,302]https://www.doczj.com/doc/275192687.html,/catchimg/20070303/608340_5.jpg[/img] [font=Times New Roman]4[/font] 、依次点击文件[font=Times New Roman]/[/font] 转换[font=Times New Roman]/ASII[/font] 转[font=Times New Roman]Unicode[/font] ([font=Times New Roman]I[/font] )选项: [align=center]图七:[/align]

24位BMP图像

#include #include void main() { FILE *fpIn,*fpOut; /////////////////////////// struct RGBQUAD { unsigned char rgbBlue; unsigned char rgbGreen; unsigned char rgbRed; unsigned char rgbReserved; } bicolor; char bfty[2]; short bfreserved1,biplanes,bibitcount; long bfsize,bfoffbit,bisize,biwidth,biheight; long bicompression,bisizeimage,bix,biy,biclrused,biclrimportant; char *cR; int iCol,iRow; int i,j; int iWidth; char *lpsData; int iL; short sTemp; //////////////////////////////////// fpIn=fopen("F:/课堂学习/遥感数字图像处理/data/AA","rb"); fpOut=fopen("F:/课堂学习/遥感数字图像处理/data/Tm23.bmp","wb"); //D:\??\??????????\Data\data iCol=600; iRow=600; bfty[0]='B'; bfty[1]='M'; bfsize=54+iCol*iRow*3; bfreserved1=0; bfoffbit=54; ///////////////// bisize=40; biwidth=iCol; biheight=iRow; biplanes=1; bibitcount=24; bicompression=0;

位图结构详细资料

GDI基本概念及思想 编写代码的一般步骤:先用CreateDC创建(或GetDC获取)device content(DC),然后用GetObject获取(或使用创建object的函数创建)需要的object,并用SelectObject将获取的object选入device content(DC),再使用object进行相应的画图操作,最后用SelectObject将原来的object重新选入DC,并delete 或release删除或释放前面创建或获取的DC。 1.关于device context (DC)设备内容:用来显示位图的地方. 四种设备内容:显示器设备内容、打印机设备内容、内存设备内容、Information 设备内容,常用的有显示器DC和内存DC. Device Context Types: There are four types of DCs: display, printer, memory (or compatible), and information. Device context Description Display Supports drawing operations on a video display. Printer Supports drawing operations on a printer or plotter. Memory Supports drawing operations on a bitmap. Information Supports the retrieval of device data. 其中需要注意的一种类型是:Memory Device Contexts,将在bitmap处理中详细介绍。 创建和获取DC的相关函数: CreateDC,CreateCompatibleDC,GetDC,GetCurrentDC. 其中CreateCompatibleDC用于创建内存设备内容. 刷新、释放和删除DC的相关函数: ResetDC,ReleaseDC,DeleteDC.前者当DC有变动时用来重置DC,后者用来释放使用万完的DC. DeleteDC与CreateDC对应使用 ReleaseDC与GetDC对应使用 2.关于graphical object(GDI objects): 包括:pen,brush,bitmap,palette,region,path. 获取、选择和删除object的相关函数:

ico文件的数据结构

1.制造原理 调色板模式的ico文件的数据结构,可分为 6 部分: 1.ICON文件头(6字节) 2.ICON图象信息块(16字节) 3.BMP信息头(40字节) 4.调色板(16色为64字节,256色为1024字节) 5.XOR位图 6.AND位图 而调色板模式的bmp文件的数据结构可分为 4 部分: 1.BMP文件头(14字节) 2.BMP信息头(40字节) 3.调色板(16色为64字节,256色为1024字节) 4.XOR位图 分析可知,ico图标与bmp位图有三个相同的部分(注:真彩图标与真彩位图的数据结构均没有调色板部分,所以是两个相同的部分),而且这三个部分是最重要的部分。因此,我 们只要去掉 bmp位图的 BMP文件头,再加上ICON文件头、ICON图象信息块和AND位图,就可以轻松制作出255×255象素以内的任何规格的图标了。然而……且慢,有一点却是很不轻松的:如果你想制作背景透明(屏蔽背景色)的图标,那么你还需要对 XOR位图的数据动大手术,更不轻松的是,AND 位图的数据也必须符合相应的要求,这是相当困难的;而制作有背 景色的图标的话,XOR 位图部分我们可以原封不动,AND 位图全是 0,只要计算出它的长度 来即可添加到 XOR位图数据的后面,这是很容易实现的。所以,下面我所讲的,都是制作有背景色的图标。 ICON文件头结构很简单,一共只有3个数据共6个字节,我们要给其中的“资源类型”和“图象个数” 2个数据均赋值为 1。 ICON 图象信息块有 7个数据共16字节,有5个数据要赋值:图标宽度、图标高度、颜色计数、图像数据块的长度、图象数据块相对于文件头部的偏移量。要赋值的 5个数据中,图象数据块相对于文件头部的偏移量是固定的,图像数据块的长度需要计算,其余 3个数据可从 BMP 信息头中获得资料。 AND 位图的长度必须根据从 BMP 信息头中获得的有关数据计算。 此外,还要更改 BMP 信息头中的 2个数据:一个是图象长度数据(要加上 AND 位图的长度),另一个是图像高度数据(这只要简单地将原数据×2即可)。 OK,一切都准备好了,万事俱备,只欠东风,下面就让东风劲吹吧。 2.编程 新建一个窗体,添加一个公用对话框,两个图片框,三个按纽。 窗体与图片框的ScaleMode属性均设为3,其中 Picture1 的 Autosize 属性设为 Ture。 按纽的属性设置: Command1:Caption=打开图片 Command2:Caption=数据处理,Enabled=False Command3:Caption=保存图标,Enabled=False 代码如下:

C语言 BMP图片处理

C语言BMP图片处理 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统中以BMP为扩展名保存。 打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图(当然,也可以用其它工具软件生成)。 现在讲解BMP的4个组成部分: 1.文件头信息块 0000-0001:文件标识,为字母ASCII码“BM”。 0002-0005:文件大小。 0006-0009:保留,每字节以“00”填写。 000A-000D:记录图像数据区的起始位置。各字节的信息依次含义为:文件头信息块大小,图像描述信息块的大小,图像颜色表的大小,保留(为01)。 2.图像描述信息块 000E-0011:图像描述信息块的大小,常为28H。 0012-0015:图像宽度。 0016-0019:图像高度。 001A-001B:图像的plane(平面?)总数(恒为1)。 001C-001D:记录像素的位数,很重要的数值,图像的颜色数由该值决定。001E-0021:数据压缩方式(数值位0:不压缩;1:8位压缩;2:4位压缩)。0022-0025:图像区数据的大小。 0026-0029:水平每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。 002A-002D:垂直每米有多少像素,在设备无关位图(.DIB)中,每字节以00H 填写。 002E-0031:此图像所用的颜色数,如值为0,表示所有颜色一样重要。 3.颜色表 颜色表的大小根据所使用的颜色模式而定:2色图像为8字节;16色图像位64字节;256色图像为1024字节。其中,每4字节表示一种颜色,并以B(蓝色)、G(绿色)、R(红色)、alpha(像素的透明度值,一般不需要)。即首先4字节表示颜色号0的颜色,接下来表示颜色号1的颜色,依此类推。 4.图像数据区

win7更改文件类型图标

Win7更改文件类型图标 使用过win7的人,肯定都知道win7没有一个现成的提供你更改文件图标的工具。比如.*.rmvb、*.doc,我们并不想使用其原先的默认图标;或者是某个软件因为下载的是硬盘版,所以没有进行文件关联,从而进行关联的时候,致使这类文件图标并不美观,等等。因为这些原因的存在,使我们对win7的图标功能感觉并不方便。 在一般情况下,我们可以通过安装其它软件从而达到修改文件图标的目的。但是在这里,我将向大家介绍修改注册表的方法更改文件图标。 下面我以*.sai(一种绘图软件的文件)这类文件作为例子,向大家介绍如何在win7里面不用其它软件,通过修改注册表更改文件图标。 首先,这款软件我下载的是硬盘版,所以在最初,这款软件并没有关联上其所对应的程序。我们可以看到这个文件还是以白色的纸张为文件图标(图①)。 图① 于是接下来我们通过右击文件→属性→在常规选项卡里选择更改…(图②)

图② 接着在弹出的对话框中选中我们要用来打开的文件。因为是硬盘版的程序,所以我们只能通过选择浏览找到我们需要的程序。(图③) 图③ 然后选择我们的程序,点击确定。这样一来,我们的文件就可以直接用对应的程序运行了。但是文件的图标却并不好看。(图④) 图④ 接下来,我们就要开始修改图标。 在该程序的图标上点击右键→属性→更改图标…,在弹出的对话框里我们发现有一个类似于文件的图标。正好我们将它用来做*.sai文件类型的图标比较合适。(图⑤)*其实也可以不用这样查找图标,只要你能确定你所想要的图标位于哪个文件内,是第几个就行了(竖排顺序)。第一个是0,按照顺序依次加1。

(图⑤) 接下来,我们进入注册表。点击开始,在搜索程序和文件中输入regedit,然后按下回车。在弹出来的用户账户控制对话框中选择是(如果有的话)。 通过搜索关键字sai,发现有两个位置存储着有关后缀名的信息。 这两个地址分别为: HKEY_CLASSES_ROOT/.sai HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.sai 在第一个地址中,存在一个字符串值:(图⑥) 图⑥ 在第二个地址中的OpenWithProgids目录下,存在一个二进制值:(图⑦) 图⑦ 我们发现,其都指向了sai_auto_file这个值。 以它为关键字,最终我们在HKEY_CLASSES_ROOT下找到了这个它,这里也就是我们要用来改图标的关键。(图⑧) 图⑧

matlab图像数据类型转换

uint 8:无符号的8位(8bit)整型数据(unit 都是存储型) int :整型数据 1、在MATLAB中,数值一般都采用double型(64位)存储和运算. 2、为了节省存储空间,MATLAB为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称为8位型像。 3、函数image能够直接显示8位图像,但8位型数据和double型数据在image中意义不一样, 4、对于索引图像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中的值为0时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的值为1时,表示用色图矩阵中的第二行表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差1。所以,索引图像double型和uint8型在显示方法上没有什么不同,只是8位数据矩阵的值和颜色种类之间有一个偏差1。调用格式均为image(x); colormap(map); 5、对于灰度图像,uint8表示范围[0,255],double型表示范围[0,1]。可见,double型和uint8型灰度图像不一样,二者转换格式为: I8=uint8 (round (I64*255)); !!double转换成uint 8 I64=double (I8)/255; !!!uint转换成double 反之,imread根据文件中的图像种类作不同的处理。当文件中的图像为灰度图像时,imread 把图像存入一个8位矩阵中,把色图矩阵转换为双精度矩阵,矩阵中每个元素值在[0,1]内;当为RGB图像时,imread把数据存入到一个8位RGB矩阵中。!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! MATLAB中读入图像的数据类型是uint8,而在矩阵中使用的数据类型是double 因此 I2=im2double(I1) :把图像数组I1转换成double精度类型; 如果不转换,在对uint8进行加减时会产生溢出 图像数据类型转换函数 默认情况下,matlab将图象中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 im2double():将图象数组转换成double精度类型 im2uint8():将图象数组转换成unit8类型 im2uint16():将图象数组转换成unit16类型 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 默认情况下,matlab将图像中的数据存储为double型,即64位浮点数;matlab还支持无符号整型(uint8和uint16);uint型的优势在于节省空间,涉及运算时要转换成double型。 但是,问题的真正的解释其实应该是这样的。首先是在数据类型转换时候uint8和im2uint8的区别,uint的操作仅仅是将一个double类型的小数点后面的部分去掉;但是im2uint8是将输入中所有小于0的数设置为0,而将输入中所有大于1的数值设置为255,再将所有其他值乘以255。 图像数据在进行计算前要转化为double类型的,这样可以保证图像数据运算的精

BMP图像格式详解

BMP格式图像文件详析 首先请注意所有的数值在存储上都是按“高位放高位、低位放低位的原则”,如12345678h放在存储器中就是7856 3412)。下图是导出来的开机动画的第一张图加上文件头后的16进制数据,以此为例进行分析。T408中的图像有点怪,图像是在电脑上看是垂直翻转的。在分析中为了简化叙述,以一个字(两个字节为单位,如424D就是一个字)为序号单位进行,“h”表示是16进制数。 424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 ...... BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。 一、图像文件头 1)1:图像文件头。424Dh=’BM’,表示是Windows支持的BMP 格式。

2)2-3:整个文件大小。4690 0000,为00009046h=36934。 3)4-5:保留,必须设置为0。 4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,为00000046h=70,上面的文件头就是35字=70字节。 5)8-9:位图图信息头长度。 6)10-11:位图宽度,以像素为单位。8000 0000,为00000080h=128。 7)12-13:位图高度,以像素为单位。9000 0000,为00000090h=144。 8)14:位图的位面数,该值总是1。0100,为0001h=1。 二、位图信息头 9)15:每个像素的位数。有1(单色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增强

位图文件结构

位图文件结构 1.位图文件头(BITMAPFILEHEADER):14字节 typedef struct tagBITMAPGILEHEADER{ WORD bfType; //值为0x4d42 DWORD bfSize; //位图文件的大小 WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMATPFILEHEADER; 2.位图信息: typedef struct tagBITMAPINFO{ BITMAPINFOHEADER bmiHeader; //位图信息头 RGBQUAD bmiColors; //颜色表 } BITMAPINFO; 1)位图信息头: typedef struct tagBITMAPINFOHEADER{ DWORD biSize; //位图信息头的字节数sizeof(BITMAPINFOHEADER) LONG biWidth; //以像素为单位的图像宽度 LONG biHeight; //以像素为单位的图像长度 WORD biPlanes; //目标设备的位平面数 WORD biBitCount; //每个像素的位数【1】 DWORD biCompression; //图像的压缩格式(这个值几乎总是为0) DWORD biSizeImage; //以字节为单位的图像数据的大小 LONG biXpelsPerMeter; //水平方向上的每米的像素个数 LONG biYpelsPerMeter; //垂直方向上的每米的像素个数 DWORD biClrUsed; //调色板中实际使用的颜色数,通常为0 DWORD biClrImportant; //实现位图时必须的颜色数,通常为0 } BITMAPINFOHEADER; 【1】每个像素的位数 0,用在JPEG格式中 1,单色图,调色板中含有两种颜色,也就是我们通常说的黑白图片 4,16色图 8,256色图,通常说的灰度图 16,64K图,一般没有调色板,图像数据中每两个字节表示一个图像,5个或6个位表示一个RGB分量 24,16M真彩色图,一般没有调色板,图像数据中每3个字节表示一个像素,每个字节表示一个RGB分量 32,4G真彩色,一般没有调色板,每4个字节表示一个像素,相对24位真彩图而言,加入了一个透明度,即RGBA模式 2)颜色表: 针对16位以下的图像而设置的。对于16位以下的图像,由于其位图像素数据中记 录的只是调色板索引值,因而需要根据这个索引到调色板去取得相应的RGB颜色。 typedef struct tagRGBQUAD{ BYTE rgbBlue;

EPLAN模版图标文件更改

请教:如何将eplan p8创建首页中的eplan图标换成自己公司的图标 我改了很多参数就是修改不了这个图标。 以下是关于《请教:如何将eplan p8创建首页中的eplan图标换成自己公司的图标(有图)》论题的回复(共9 篇) 回复人:cn18show回复时间:2009-10-13 20:07:00支持(32) |反对(43) 易展五周年生日,祝福易展,领取红包!50万大派送,快来看看!详情: https://www.doczj.com/doc/275192687.html,/5/?m=189 回复人:zhijianok回复时间:2010-3-28 23:40:00支持(27) |反对(37) 期待高人指点 回复人:linglong2回复时间:2010-5-14 11:10:00支持(31) |反对(39) 首先新建一个表格文件,如何建新表格请查阅相关手册,在新的表格文件中将原来的EPLAN图标去掉,换成自己公司的LOGO,可以是各种不同类型的图片文件,然后在设置中:项目/报表/输出为页/第26项(标题页/封页)的表格改成你新的表格文件,然后在工具/报表中

生成标题页/封页就可以了。 请注意:将自己公司的LOGO图片文件要粘贴到你的项目文件(例如:TEST.edb)的Images 文件夹中,否则你的标题页/封页中该处会是一个方格! 回复人:baobao1971回复时间:2010-7-19 16:02:00支持(23) |反对(37) 期待高人指点 回复人:chinajing回复时间:2011-8-3 19:47:00支持(23) |反对(25) 那里面的内容能修改吗?怎么修改?比如公司名称,项目描述等等。期待高手指点 回复人:crazy_mxf回复时间:2011-12-8 14:30:00支持(17) |反对(22) 有没有初级入门资料啊期待啊 回复人:竹叶三回复时间:2012-8-20 14:03:00支持(5) |反对(6) 新手来了,好好学习!!! 回复人:吗职位回复时间:2012-9-7 9:49:00支持(3) |反对(2) https://www.doczj.com/doc/275192687.html,/upload/upload12/201209070946098.jpg 我改的我们公司的LOGO 3楼正解, 回复人:siemens512回复时间:2012-12-9 20:31:00支持(3) |反对(1) 有没有入门资料啊?菜鸟求带2257632510

(整理)MATLAB图像显示与格式转换.

第五讲M A T L A B可视化(三) 图像显示 M a t l a b进行图像处理的步骤如下: ↓ ↓ ↓↓ 【目录】 一、图像文件格式 (2) 1、调色板 (2) 2、图像类型 (2) 3、图像文件格式 (3) 二、读图像和图像信息 (3) 1、读取图像 (3) 2、读取图像信息 (4) 三、图像类别与数据格式 (6) 四、图像显示 (8) 1、i m s h o w(I,n) (8) 2、i m s h o w(I,[l o w,h i g h]) (9) 3、i m s h o w(B W) (10) 4、i m s h o w(X,M A P) (14) 5、i m s h o w(R G B) (15) 6、i m s h o w f i l e n a m e (16)

7、s u b i m a g e (17) 五、保存图像 (18) 1、i m w r i t e函数 (18) 六、图像数据格式转换 (18) 1、索引图像 (19) 2、灰度图像 (19) 3、真彩色图像 (19) 4、二值图像 (20) 【正文】 一、图像文件格式 1、调色板 调色板是包含不同颜色的颜色表,每种颜色以红、绿、蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板中的一种颜色。 调色板的单元个数是与图像的颜色数相对应的,256色图像的调色板就有256个单元。 真彩图像的每个像素直接用R、G、B三个字节来表示颜色,因此不需要调色板。 2、图像类型

3、图像文件格式 二、读图像和图像信息 1、读取图像

函数i m r e a d可以从任何M a t l a b支持的图像文件格式中,以任意位深度读取一幅图像。格式为: [X,M A P]=i m r e a d(F I L E N A M E,'F M T'),其中: F I L E N A M E-为需要读入的图像文件名称,F M T-为图像格式。 【例】图像读取演示 [X1,M A P1]=i m r e a d('演示图像-1位黑白.t i f'); [X2,M A P2]=i m r e a d('演示图像-8位灰度.t i f'); [X3,M A P3]=i m r e a d('演示图像-256色.t i f'); [X4,M A P4]=i m r e a d('演示图像-16位灰度.t i f'); [X5,M A P5]=i m r e a d('演示图像-24位色.t i f'); [X6,M A P6]=i m r e a d('演示图像-48位色.t i f'); w h o s N a m e S i z e B y t e s C l a s s M A P10x00d o u b l e a r r a y M A P20x00d o u b l e a r r a y M A P3256x36144d o u b l e a r r a y M A P40x00d o u b l e a r r a y M A P50x00d o u b l e a r r a y M A P60x00d o u b l e a r r a y X1427x427182329l o g i c a l a r r a y X2427x427182329u i n t8a r r a y X3427x427182329u i n t8a r r a y X4427x427364658u i n t16a r r a y X5427x427x3546987u i n t8a r r a y X6427x427x31093974u i n t16a r r a y G r a n d t o t a l i s1824058e l e m e n t s u s i n g2558750b y t e s 2、读取图像信息

24位bmp位图转换为24位ico图标(透明效果)

32×32的24位bmp位图转换为24位ico图标 2009年03月03日星期二 10:25 不需任何控件和外部函数,单击窗体,输入bmp文件名和ico文件名就完成了,如果输入的文件名错误,将取消转换 Private Sub Form_Click() On Error GoTo cancel icoHead = Array(0, 0, 1, 0, 1, 0, 32, 32, 0, 0, 1, 0, 24, 0, 168, 12, 0, 0, 22, 0, 0, _ 0, 40, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 1, 0, 24, 0, 0, 0, 0, 0, 128, 12) Dim bmp(3125) As Byte, ico(3261) As Byte begin: bmpfile = InputBox("请输入要转换的bmp文件名(全路径)") n = FileLen(bmpfile) Open bmpfile For Binary As #1 Get #1, , bmp Close #1 If bmp(18) <> 32 Or bmp(22) <> 32 Or n <> 3126 Then m2 = MsgBox("文件不是32×32的24位位图,是否重新选择?", vbYesNo + 32) If m2 = vbNo Then GoTo cancel GoTo begin End If For i = 0 To 43 ico(i) = icoHead(i) Next i For i = 62 To 3133 ico(i) = bmp(i - 8) Next i AutoRedraw = True ScaleMode = 3 Picture = LoadPicture(bmpfile) '在窗体上显示位图文件 For y = 31 To 0 Step -1 For x = 0 To 31 Step 8 For b = 0 To 7 ico(i) = ico(i) + 2 ^ (7 - b) * (-(Point(x + b, y) = RGB(192, 192, 192))) '把位图中颜色为RGB(192,192,192)的像素转换为透明 Next b i = i + 1 Next x Next y icofile = InputBox("请输入要保存的ico文件名(全路径)") Open icofile For Binary As #1 Put #1, , ico

Java 图片处理 格式转换

Java 图片处理(包括 Jmagick 的应用) 图片处理( 的应用)
作者: 佚名, 出处:IT 专家网,
2010-10-29 08:30
责任编辑: 谢妍妍,
近期有使用到图片的压缩处理,由于在之前用 Java 处理时,在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
近期有使用到图片的压缩处理, 由于在之前用 Java 处理时, 在低像素的情况下, Java 处理的效果确实很差,然后尝试了用网上推荐的免费开源的第三方软件,利用 Java 的 jni 调用 dll 文件进行处理,效果还可以。在此记录下,方便以后继续积累。
1、纯 Java 类处理图片代码
Java 代码
以下是代码片段: 以下是代码片段: /** * 转换图片大小,不变形 * * @param img * 图片文件 * @param width * 图片宽 * @param height * 图片高 */ public static void changeImge(File img, int width, int height) { try { Image image = ImageIO.read(img); //图片尺寸的大小处理, 如果长宽都小于规定大小, 则返回, 如果有一个大于规定大小, 则等比例缩放 int srcH = image.getHeight(null); int srcW = image.getWidth(null); if (srcH <= height && srcW <= width) { return;

bmp图像的读取

BMP图像文件由三部分组成:位图文件头数据结构,它包含BMP图像文件的类型、显示内容等信息;位图信息数据结构,它包含有BMP图像的宽、高、压缩方法,以及定义颜色等信息。 位图文件主要分为如下3个部分: 1、文件信息头BITMAPFILEHEADER 结构体定义如下: typedef struct tagBITMAPFILEHEADER { WORD bfType; DWORD bfSize; WORD bfReserved1; WORD bfReserved2; DWORD bfOffBits; } BITMAPFILEHEADER; 其中: 2、位图信息头BITMAPINFOHEADER

结构体定义如下: typedef struct tagBITMAPINFOHEADER { DWORD biSize; LONG biWidth; LONG biHeight; WORD biPlanes; WORD biBitCount; DWORD biCompression; DWORD biSizeImage; LONG biXPelsPerMeter; LONG biYPelsPerMeter; DWORD biClrUsed; DWORD biClrImportant; } BITMAPINFOHEADER; 其中:

BMP头文件格式以及C语言读取头文件(二) 具体数据举例: 如某BMP文件开头: 424D 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... .... BMP文件可分为四个部分:位图文件头、位图信息头、彩色板、图像数据阵列,在上图中已用*分隔。 一、图像文件头 1)1:(这里的数字代表的是"字",即两个字节,下同)图像文件头。424Dh=’BM’,表示是Windows支持的BMP格式。 2)2-3:整个文件大小。4690 0000,为00009046h=36934。 3)4-5:保留,必须设置为0。 4)6-7:从文件开始到位图数据之间的偏移量。4600 0000,为00000046h=70,上面的文件头就是35字=70字节。 5)8-9:位图图信息头长度。 6)10-11:位图宽度,以像素为单位。8000 0000,为00000080h=128。 7)12-13:位图高度,以像素为单位。9000 0000,为00000090h=144。 8)14:位图的位面数,该值总是1。0100,为0001h=1。 二、位图信息头 9)15:每个像素的位数。有1(单色),4(16色),8(256色),16(64K 色,高彩色),24(16M色,真彩色),32(4096M色,增强型真彩色)。1000为0010h=16。 10)16-17:压缩说明:有0(不压缩),1(RLE 8,8位RLE压缩),2(RLE 4,4位RLE压缩,3(Bitfields,位域存放)。RLE简单地说是采用像素数+像素值的方式进行压缩。T408采用的是位域存放方式,用两个字节表示一个像素,位域分配为r5b6g5。图中0300 0000为00000003h=3。 11)18-19:用字节数表示的位图数据的大小,该数必须是4的倍数,数值上等于位图宽度×位图高度×每个像素位数。0090 0000为 00009000h=80×90×2h=36864。

BMP头文件格式

bmp头文件格式 1:BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。2:BMP文件头(14字节) BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下: typedef struct tagBITMAPFILEHEADER { WORDbf Type; // 位图文件的类型,必须为BMP(0-1字节) DWORD bfSize; // 位图文件的大小,以字节为单位(2-5字节) WORD bfReserved1; // 位图文件保留字,必须为0(6-7字节) WORD bfReserved2; // 位图文件保留字,必须为0(8-9字节) DWORD bfOffBits; // 位图数据的起始位置,以相对于位图(10-13字节) // 文件头的偏移量表示,以字节为单位 } BITMAPFILEHEADER; 3:位图信息头(40字节) BMP位图信息头数据用于说明位图的尺寸等信息。 typedef struct tagBITMAPINFOHEADER{ DWORD biSize; // 本结构所占用字节数(14-17字节) LONG biWidth; // 位图的宽度,以像素为单位(18-21字节)

LONG biHeight; // 位图的高度,以像素为单位(22-25字节) WORD biPlanes; // 目标设备的级别,必须为1(26-27字节) WORD biBitCount;// 每个像素所需的位数,必须是1(双色),(28-29字节) // 4(16色),8(256色)或24(真彩色)之一 DWORD biCompression; // 位图压缩类型,必须是0(不压缩),(30-33字节) // 1(BI_RLE8压缩类型)或2(BI_RLE4压缩类型)之一 DWORD biSizeImage; // 位图的大小,以字节为单位(34-37字节) LONG biXPelsPerMeter; // 位图水平分辨率,每米像素数(38-41字节) LONG biYPelsPerMeter; // 位图垂直分辨率,每米像素数(42-45字节) DWORD biClrUsed;// 位图实际使用的颜色表中的颜色数(46-49字节) DWORD biClrImportant;// 位图显示过程中重要的颜色数(50-53字节) } BITMAPINFOHEADER; 4:颜色表 颜色表用于说明位图中的颜色,它有若干个表项,每一个表项是一个RGBQUAD类型的结构,定义一种颜色。RGBQUAD结构的定义如下: typedef struct tagRGBQUAD {

相关主题
文本预览
相关文档 最新文档