`
孙瑞鸿
  • 浏览: 17052 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

保存bmp自画图形

 
阅读更多
保存自画图形(bmp图像)
分析:
首先:要做一个画板出来,实现画各种图形(这个就很简单,不多说了)
其次:怎样将这个图片保存起来,保存的目的就是再一次打开,这就要求我们在保存
的时候要有一定的规则!bmp的规则我们已经很熟悉了!接下来就看一下具体操作吧!

此次我们使用的是BufferedImage得到画布,利用BufferedImage的一些方法截取
指定大小的图片、取得图片上的图片信息,并将其写入指定路径的文件中。

java.awt.Robot ro=new java.awt.Robot();	
	/*
	* myCanvas.getLocation().x,myCanvas.getLocation().y
	* 得到当前容器的x,y坐标值
	*/
	Rectangle rt=new Rectangle(db.getLocation().x+10,db.getLocation().y+70,db.getWidth()-20,db.getHeight()-80);
	BufferedImage im=  ro.createScreenCapture(rt);
	

1.文件头信息
int bheadlen=14;
	//创建一个byte数组保存文件头信息
	byte[] bhead=new byte[bheadlen];
	bhead[0]='B';
	bhead[1]='M';
	//文件大小
	filesize=im.getWidth()*im.getHeight()*3;
	for(int i=2,j=0;i<6;i++,j++){
		byte[] by=change(filesize);
		bhead[i]=by[j];
	}
	//偏移量
	bfOffBits=54;
	for(int i=10,j=0;i<14;i++,j++){
		byte[] by=change(bfOffBits);
		bhead[i]=by[j];
	}
		dos.write(bhead);

2.位图信息
//保存位图信息的数组
	byte[] bmess=new byte[40];
	width=im.getWidth();
	high=im.getHeight();
	//本结构所占用字节数
	sss=40;
	for(int i=0,j=0;i<4;i++,j++){
		byte[] by=change(sss);
		bmess[i]=by[j];
	}
	for(int i=4,j=0;i<8;i++,j++){
		byte[] by=change(width);
		bmess[i]=by[j];
		}
	for(int i=8,j=0;i<12;i++,j++){
		byte[] by=change(high);
		bmess[i]=by[j];
	}
	//目标设备的级别,必须为1
	plane=1;
	bmess[12]=(byte) ((plane>>>0)&0xff);
	bmess[13]=(byte)((plane>>>8)&0xff);
	//每个像素所需的位数(此处为24真彩色)
	weishu=24;
	bmess[14]=(byte) ((weishu>>>0)&0xff);
	bmess[15]=(byte)((weishu>>>8)&0xff);
	//位图的大小
	weitusize=filesize-54;
	for(int i=20,j=0;i<24;i++,j++){
		byte[] by=change(weitusize);
		bmess[i]=by[j];
	}
	dos.write(bmess);

3.位图数据
//用于补0的数组
	byte d[]=new byte[rt.width%4];
	//写入位图数据
	for(int i=rt.height-1;i>=0;i--){					   
		for(int j=0;j<rt.width;j++){
			int rgb=im.getRGB(j, i);
			b[0]=(byte)rgb;
			rgb=rgb>>8;
			b[1]=(byte)rgb;
			rgb=rgb>>8;
			b[2]=(byte)rgb;
			dos.write(b); 
			if(rt.width%4!=0){
				dos.write(d);
			}
		}  
	}

这样呢就将自己画的图像保存到文件中去了!而且可以用自己写的bmp图形解析器打开哦!
赶快去试试吧
分享到:
评论

相关推荐

    MFC画图板,可以画一些基本图形,如直线,椭圆,扇形,矩形,弦形,三角形。 可以保存为BMP的文件。

    MFC画图板,可以画一些基本图形,如直线,椭圆,扇形,矩形,弦形,三角形。 可以保存为BMP的文件。

    双缓冲画图并保存为bmp

    双缓冲画图,并将所画图形保存为bmp格式文件。开发环境vs2008

    Delphi开发技巧之-图形图像

    将窗体作为位图复制到剪贴板并保存为文件 平滑改变JPEG图像大小 改变位图颜色通道 改变图形模式 改变鼠标指针 旋转文本 无闪烁动画 比较两个图标是否相同 淡入、淡出图像 清空TImage 直接在桌面上画图 绘图 翻转位图...

    VB6.0画线段、画圆形、填充图形画图实例.rar

    VB6.0画线段、画圆形、填充图形画图实例,当鼠标按下时,对于选择不同的工具执行不同的操作,在标签中显示当前鼠标在画板中的位置,通过point方法拾取颜色,并设定为前景色,可画线条、线段、设置画笔精细、画圆形、...

    图形图像处理实用教程

    1.9.1 BMP格式 1.9.2 PSD/PDD格式 1.9.3 JPEG格式 1.9.4 TIFF格式 1.9.5 TGA格式 1.9.6 PCX格式 1.9.7 GIF格式 1.9.8 PICT格式 1.9.9 其他图像文件格式 1.10 计算机图像处理系统 1.10.1 显示器及相关概念 1.10.2 ...

    c++ opengl 多边形画板(山大图形学实验二)

    对象删除:支持用户选择一个多边形(与你的多边形保存的数据结构有关)并删除。 对象存储:设计一种数据结构存储每个多边形的顶点与边,支持文件存盘,同时程序可以打开文件以显示多边形。 1. 支持用户选择多边形的...

    java写的画板

    (7)文件保存格式为BMP格式; (8)文字功能:读取文本框中的文本并打印到屏幕鼠标的相应的响应位置,传入输入的文字大小的参数,以此来改变文字的大小; 4.弹泡泡功能的设计 根据Java多线程来实现弹泡泡功能;泡泡的...

    iImgDraw图形绘制组件

    This ASP component draw image on web server. Supports JPG, BMP files and can export to JPG,BMP. iImgDraw 3.0 是一个Asp下的图形绘制组件。 是一个由[数据驿站]开发,版权...9、可将图形保存到文件中(BMP,JPG)

    简单绘图程序(实现和windows自带画图软件的基本功能)

    1、画直线:通过OnLine()函数实现。 2、画矩形:通过OnRectangle()函数实现。 3、画椭圆:通过...9、保存为bmp位图:可以将在程序所画的图形保存为一幅bmp图片,通过view中的SaveAsBmp(CString filename)实现。

    MXSF素描画软件 v1.2.zip

    MXSF素描画软件是一款让你能在电脑上绘制素描画的软件,你...3、新建工程的时候要选一张bmp图片作为参照画 4、可以从右侧颜色表添加需要的颜色,在列表里右键添加 5、右键可以选择各种画板工具 MXSF素描画软件截图

    漫画制作工具(EasyComic) v1.8 官方免费版.zip

    大家好,今天向大家介绍一款漫画制作软件——EasyComic,即使您是一位...1. 将漫画文件导出为图片时,在PNG的基础上,增加JPG和BMP两种格式。 2. 修复BUG:对分组(Group)进行编辑,然后保存,分组的位置出现偏移。

    基于C++(QT)+OpenGL设计与开发的图形绘制系统【100011579】

    界面设计采用Qt开发工具,而绘图...总体来看,需要实现的系统的主要功能为通过交互,绘制图形,并保存为.bmp 格式的文件。而无论是哪种绘图算法,本质上来说,都是在决定哪些位置的像素点应该被置为当前画笔的颜色。

    Visual C++ 编程资源大全(源码 图形)

    cmorph21.zip create morphed images with TGA/IMG/BMP/GIF/IPI/PCX files(630KB)&lt;END&gt;&lt;br&gt;43,bmp2ico.zip 转换BMP文件到WINDOWS 3.X的ICO文件(22KB)&lt;END&gt;&lt;br&gt;44,alch151.zip 图形转换器(359KB)&lt;END&gt;&lt;br&gt;45...

    立几画板 v6.0.5.2.zip

    可以打开或保存多种格式的图象文件(如bmp、jpg、gif、png等),并对此进行缩放、裁剪、转换等操作。 立几画板 v6.0.5.2 更新日志 增加了“添加文本”命令,可以象Word中一样直接输入文本。 默认文本颜色改为黄色...

    漫画制作工具 EasyComic 3.2 中文版.zip

    无论是漫画文件、漫画包,还是普通的图形元素,都可以被导出为图片,支持PNG、JPG、BMP等格式。在未来的版本中,我们还会支持SVG格式。漫画包(*.ecp)的机制,可以帮助您集中管理一系列的漫画文件(*.ecf),就像...

    单片机显示字符、图形点阵提取工具

    这是一款基于excel2019的LED/LCD字符、图形点阵提取工具,点阵大小...6、可将设计好的点阵数据复制到Sheet2中,逆向画出对应的图像; 7、特别提醒:该工具需要使用excel的宏,使用前务必允许启用宏,否则无法正常使用。

    三维立体画制做程序

    1/打开程序 ...6/你一定不只是要build我给出的front图片吧,打开画图板自己画几个灰度图作为front吧,记住保存成bmp格式哦,然后build看看,如果有漂亮的结果不妨贴到这里来给大家看看啦。 样例:

    VB编程资源大全(控件 图形1)

    (包括示例程序)(26KB) 4,crystal.zip 一个图形创建和处理控件, 它支持bmp, cur, dib, emf, gif, ico, jpg和wmf文件格式, 能装入, 存储, 画, 处理和打印图形. 有多种处理效果. (free) cool(48KB) 5,gvocx....

    网趣官方编写的VB画图工具源代码 v4.0

     3.0 画笔粗细更换为VB的另外组件,增加画图保存功能(BMP格式)  4.0 由原来的画点改为画线,正式成为画图软件  修正载入图片功能。增加简单话画圆功能。  增加了美化窗体模块(转)

    Meadow-Invaders:针对Meadow F7开发板使用1Bit BMP资源的类似于Sprite的动画

    一旦弄清楚如何读取标头并处理实际位,我发现使用BitArray来保存图像更容易。 这使用了8倍的内存,但允许每个像素以布尔数组寻址。 它为您完成了一些工作。 然后,我绕过了图形库,只是直接设置像素。 为了支持2帧...

Global site tag (gtag.js) - Google Analytics