📄 久久网络-网络学堂-用 java 保存位图文件.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0044)http://www.99net.net/study/prog/68104647.htm -->
<HTML><HEAD><TITLE>久久网络-网络学堂-用 Java 保存位图文件</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="久久网络-网络学堂-用 Java 保存位图文件.files/common.css" type=text/css rel=stylesheet>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY text=#000000 vLink=#0033cc aLink=#ff0000 link=#0033cc bgColor=#ffffff>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=160><IMG height=60
src="久久网络-网络学堂-用 Java 保存位图文件.files/logo.gif" width=160></TD>
<TD width=6><BR></TD>
<TD vAlign=top align=middle width=468><IFRAME marginWidth=0 marginHeight=0
src="久久网络-网络学堂-用 Java 保存位图文件.files/adbanner.htm" frameBorder=0 width=468
scrolling=no height=60></IFRAME></TD>
<TD width=6><BR></TD>
<TD vAlign=top align=right width=110><IFRAME marginWidth=0 marginHeight=0
src="久久网络-网络学堂-用 Java 保存位图文件.files/adtext.htm" frameBorder=0 width=110
scrolling=no height=60></IFRAME></TD></TR>
<TR>
<TD colSpan=5 height=3></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD vAlign=bottom align=middle width=160><FONT color=#666666>
<SCRIPT language=JavaScript
src="久久网络-网络学堂-用 Java 保存位图文件.files/nowdate.js"></SCRIPT>
</FONT></TD>
<TD>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD vAlign=top width=7 bgColor=#666666 height=20><IMG height=7
src="久久网络-网络学堂-用 Java 保存位图文件.files/co-1.gif" width=7></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/"><FONT class=no
color=#ffffff>久久首页</A></FONT></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/soft/"><FONT class=no
color=#ffffff>免费软件</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/fad/"><FONT class=no
color=#ffffff>网络时尚</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#336600><A
href="http://www.99net.net/study/"><FONT
color=#ffffff>网络学堂</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/topic/"><FONT class=no
color=#ffffff>专题讨论</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/dir/"><FONT class=no
color=#ffffff>网络资源</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/game/"><FONT class=no
color=#ffffff>网络游戏</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/doc/"><FONT class=no
color=#ffffff>网络文档</FONT></A></TD>
<TD width=1 rowSpan=2><BR></TD>
<TD align=middle bgColor=#666666><A
href="http://www.99net.net/product/"><FONT class=no
color=#ffffff>网络产品</FONT></A></TD></TR>
<TR>
<TD class=p1 colSpan=2 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 bgColor=#336600 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 height=1></TD>
<TD class=p1 height=1></TD></TR></TBODY></TABLE></TD></TR>
<TR bgColor=#336600>
<TD class=p1 colSpan=2 height=3> </TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=750 align=center border=0>
<TBODY>
<TR>
<TD vAlign=top width=160 bgColor=#336600>
<TABLE cellSpacing=0 cellPadding=3 width=150 align=center border=0>
<TBODY>
<TR>
<TD height=7></TD></TR>
<TR>
<TD bgColor=#999999 height=20> 文章搜索</TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#cccccc>
<FORM name=fsearch action="" method=post target=_blank>
<TABLE cellSpacing=1 cellPadding=0 width="100%" align=center
border=0>
<TBODY>
<TR>
<TD align=middle height=64><INPUT size=9 name=fstr> <INPUT onclick="document.fsearch.action='../funcs/search.asp?key='+document.fsearch.fstr.value" type=submit value=搜索 name=Submit>
</TD></TR></TBODY></TABLE></FORM></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width=150 align=center border=0>
<TBODY>
<TR>
<TD height=7></TD></TR>
<TR>
<TD bgColor=#999999> 本类热门</TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#cccccc>
<TABLE cellSpacing=2 cellPadding=0 width="100%" align=center>
<TBODY>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/prog/6810294.htm"
target=_blank>Java中文问题详解</A></TD></TR>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/prog/36.htm"
target=_blank>用VC++和Winsock实现与HTTP服务器通话 </A></TD></TR>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/prog/68103937.htm"
target=_blank>关于Servlet、Jsp中的多国语言显示</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width=150 align=center border=0>
<TBODY>
<TR>
<TD height=7></TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#999999> 热门专题</TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#cccccc>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center>
<TBODY>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/topic/1.htm"
target=_blank>网络互联设备介绍</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=3 width=150 align=center border=0>
<TBODY>
<TR>
<TD height=7></TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#999999> 本类推荐</TD></TR>
<TR>
<TD class=p1 bgColor=#666666 height=1></TD></TR>
<TR>
<TD bgColor=#cccccc>
<TABLE cellSpacing=2 cellPadding=0 width="100%" align=center>
<TBODY>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/prog/6810919.htm"
target=_blank>POP3协议命令原始码及工作原理</A></TD></TR>
<TR>
<TD vAlign=top>-</TD>
<TD vAlign=top><A
href="http://www.99net.net/study/prog/67171825.htm"
target=_blank>用Socket发送电子邮件</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD>
<TD vAlign=top width=10>
<TABLE cellSpacing=0 cellPadding=0 width=7 align=left border=0>
<TBODY>
<TR>
<TD bgColor=#336600><IMG height=7
src="久久网络-网络学堂-用 Java 保存位图文件.files/co-3.gif"
width=7></TD></TR></TBODY></TABLE></TD>
<TD vAlign=top>
<TABLE cellSpacing=0 cellPadding=0 width="100%" align=center border=0>
<TBODY>
<TR>
<TD height=20>您的位置:<A href="http://www.99net.net/">首页</A>><A
href="http://www.99net.net/study/">网络学堂</A>><A
href="http://www.99net.net/study/prog/">网络编程</A>>文章详情</TD></TR></TBODY></TABLE><BR>
<H2 align=center>用 Java 保存位图文件</H2>
<HR SIZE=1>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR align=middle>
<TD colSpan=2>2003-4-10 16:48:29 </TD></TR>
<TR>
<TD colSpan=2> </TD></TR>
<TR>
<TD class=p11 colSpan=2>摘要 <BR> 虽然 Java
提供了几种打开图像的机制,但保存图像并不是它的强项。这篇技巧将讲述如何将图像保存在 24 位位图文件中。另外,Jean-Pierre
还提供了将图像文件写入位图文件所需的全部代码。 <BR><BR> 这篇技巧是 "在 Java 应用程序中加载位图文件的逐步指南"
的补充,那篇技巧说明了在 Java 应用程序中加载位图文件的过程。本月我再提供一篇教程,说明如何将图像保存在 24
位位图文件中,其中还包含将图像对象写入位图文件的代码片断。 <BR><BR> 如果您在 Microsoft Windows
环境中工作,那么创建位图文件的功能将为您提供许多方便。例如,在我的上一个项目中,我必须将 Java 与 Microsoft Access
对接。Java 程序允许用户在屏幕上绘图。这幅图随后被打印到 Microsoft Access 报表中。由于 Java 不支持
OLE,我的唯一选择就是创建该图的一个位图文件,并通知 Microsoft Access
报表在何处能找到这个位图文件。如果您写过向剪贴板发送图像的应用程序,则这个技巧可能对您有用 --
尤其是当您将这个信息传递给另一个应用程序时。 <BR><BR> 位图文件的格式<BR><BR> 位图文件格式支持 4 位
RLE(行程长度编码)以及 8 位和 24 位编码。因为我们只处理 24 位格式,所以下面我们查看一下该文件的结构。
<BR><BR> 位图文件分为三个部分。我已将它们列在下面。 <BR><BR> 第 1
部分:位图文件的标头<BR><BR> 标头包含位图文件的类型大小信息和版面信息。结构如下(摘自 C 语言结构定义):
<BR><BR> <BR>typedef struct tagBITMAPFILEHEADER {<BR> UINT
bfType;<BR> DWORD bfSize;<BR> UINT bfReserved1;<BR> UINT
bfReserved2;<BR> DWORD bfOffBits;<BR> }BITMAPFILEHEADER;
<BR><BR> 下面是对这个清单中的代码元素的说明: <BR><BR> bfType:指定文件类型,其值始终为 BM。
<BR><BR> bfSize:指定整个文件的大小(以字节为单位)。 <BR><BR> bfReserved1:保留 -- 必须为
0。 <BR><BR> bfReserved2:保留 -- 必须为 0。 <BR><BR> bfOffBits:指定从
BitmapFileHeader 到图像首部的字节偏移量。
<BR><BR> 现在您已经明白位图标头的用途就是标识位图文件。读取位图文件的每个程序都使用位图标头来进行文件验证。
<BR><BR> 第 2 部分:位图信息标头<BR><BR> 随后的标头称为信息标头,其中包含图像本身的属性。
<BR><BR> 下面说明如何指定 Windows 3.0(或更高版本)设备独立位图 (DIB) 的大小和颜色格式:
<BR><BR> typedef struct tagBITMAPINFOHEADER {<BR> DWORD
biSize;<BR> LONG biWidth;<BR> LONG biHeight;<BR> WORD
biPlanes;<BR> WORD biBitCount;<BR> DWORD
biCompression;<BR> DWORD biSizeImage;<BR> LONG
biXPelsPerMeter;<BR> LONG biYPelsPerMeter;<BR> DWORD
biClrUsed;<BR> DWORD biClrImportant;<BR> } BITMAPINFOHEADER;
<BR><BR> <BR> 以上代码清单的每个元素说明如下: <BR><BR><BR> biSize:指定
BITMAPINFOHEADER 结构所需的字节数。 <BR><BR> biWidth:指定位图的宽度(以象素为单位)。
<BR><BR> biHeight:指定位图的高度(以象素为单位)。
<BR><BR> biPlanes:指定目标设备的位面数。这个成员变量的值必须为 1。
<BR><BR> biBitCount:指定每个象素的位数。其值必须为 1、4、8 或 24。
<BR><BR> biCompression:指定压缩位图的压缩类型。在 24 位格式中,该变量被设置为 0。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -