导航:首页 > 编程语言 > javagetbmp

javagetbmp

发布时间:2025-07-26 06:50:48

java:Image和BufferedImage的区别是什么

Image是一个抽象类,BufferedImage是Image的实现类。
Image和BufferedImage的主要作用就是将一副图片加载到内存中。
BufferedImage 子类描述具有可访问图像数据缓冲区的 Image。BufferedImage 由图像数据的 ColorModel 和 Raster 组成。Raster 的 SampleModel 中 band 的数量和类型必须与 ColorModel 所要求的数量和类型相匹配,以表示其颜色和 alpha 分量。所有 BufferedImage 对象的左上角坐标都为 (0, 0)。因此,用来构造 BufferedImage 的任何 Raster 都必须满足:minX=0 且 minY=0。

Java将一副图片加载到内存中的方法是:

String imgPath = "D://demo.bmp";
BufferedImage image = ImageIO.read(new FileInputStream(imgPath));

该方法BufferedImage 可以获得图片的详细信息,例如:获得图片的宽度:image.getWidth(null);图片只有加载内存中才能对图片进行进一步的处理。

Ⅱ java 用usb传输数据需要 学习哪些相关方面

Ⅲ java 代码中如何将一个24位位图(123.bmp)转换成单色位图(123.bmp) 头疼啊,求大神帮忙,

BufferedImage sourceImg = ImageIO.read(new File("c:\\aa.bmp"));
int h = sourceImg.getHeight();
int w = sourceImg.getWidth();
int[] pixels = new int[w * h]; // 定义一数组,用来存储图片的象素
int gray;

PixelGrabber pg = new PixelGrabber(sourceImg, 0, 0, w, h, pixels, 0, w);
try {
pg.grabPixels(); // 读取像素值
} catch (InterruptedException e) {
System.err.println("处理被异常中断!请重试!");
}

for (int j = 0; j < h; j++) // 扫描列 {
for (int i = 0; i < w; i++) // 扫描行
{ // 由红,绿,蓝值得到灰度值
gray = (int) (((pixels[w * j + i] >> 16) & 0xff) * 0.8);
gray += (int) (((pixels[w * j + i] >> 8) & 0xff) * 0.1);
gray += (int) (((pixels[w * j + i]) & 0xff) * 0.1);
pixels[w * j + i] = (255 << 24) | (gray << 16) | (gray << 8)
| gray;
}
}
MemoryImageSource s= new MemoryImageSource(w,h,pixels,0,w);
Image img =Toolkit.getDefaultToolkit().createImage(s);
BufferedImage buf = new BufferedImage(w, h, BufferedImage.TYPE_BYTE_GRAY);
buf.createGraphics().drawImage(img, 0, 0, null);

ImageIO.write(buf, "BMP", new File("c:\\111.bmp"));

研究了一晚上,累死了

Ⅳ java截屏有哪几种方法

前台方式
1. 利用html2canvas实现前台截屏
html2canvas项目的gitHub地址
html2canvas示例
html2canvas可以将HTML代码块进行截取,并生成快照形式的canvas,然后可以利用html5的下载功能提供图片的下载接口,供用户下载。
优点:前台技术,实现比较容易。
缺点:此项目使用了html5的技术,因此在对IE的兼容上,只可以在IE9+的版本上使用。
使用时,需要引用jQuery.js和html2canvas.js。(html2canvas.js可以在github上下载)
具体JavaScript代码如下:
var canvas = function () {
html2canvas($("#chart"), {
onrendered: function (canvas) {
$("#class11").html(canvas);//将id为“class11”部分的代码转换为canvas
var type = 'png';//图片类型为png
var imgData = canvas.toDataURL('png');//将图片转换为png类型的流

var _fixType = function (type) {
type = type.toLowerCase().replace(/jpg/i, 'jpeg'); var r = type.match(/png|jpeg|bmp|gif/)[0]; return 'image/' + r;
}; var saveFile = function (data, filename) {
var save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href = data;
save_link.download = filename; var event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
save_link.dispatchEvent(event);
}; //下载时的文件
var filename = 'fe_' + (new Date()).getTime() + '.' + type; // 下载文件
saveFile(imgData, filename);
}
});

后台方式(java)
1. 利用html2image实现
html2image的地址(google)
html2image是可以识别html标签并将html转换成图片的java项目。
优点:后台转换,故对浏览器的版本基本没有要求。
缺点:对样式的识别不是很好,转换出来的图片比较简单,基本没有可以兼容的样式。
使用方式:maven中引用如下依赖:
<dependency>
<groupId>com.github.xuwei-k</groupId>
<artifactId>html2image</artifactId>
<version>0.1.0</version></dependency>12345

2. 利用DJNativeSwing项目实现
纯java代码实现。使用DJNativeSwing这个项目,构建一个swing浏览器,打开网址,之后截取图片。(需要eclipse的swt库支持)
优点:纯java实现。
缺点:需要多线程的支持,只在控制台方式实现过(由于本人对于多线程的掌握较弱,目前没有在spring项目中实现这个方法,求大神指导~~)
3. 利用phantomJs实现
phantomJs的GitHub地址
phantomJs官网
phantom利用的是webKit内核,全面支持web而不需浏览器支持,快速,原生支持各种Web标准。
优点:速度快,使用简单。
缺点:需要在项目的服务器端引用exe文件进行截图,并发性能有待考证。

Ⅳ Java如何读取BMP的每个像素点,输出到一个二维数组

//我在程序中打印出了每一个坐标的RGB值,你自己整理整理,求个平均值,
//放到你的那个二维数组里。

//自己用画图工具做一个小图片,注意图片的名字和程序中一致哦~

import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

public class Test{
public static void main(String args[]) {
int[] rgb = new int[3];

File file = new File("a.bmp");
BufferedImage bi=null;
try{
bi = ImageIO.read(file);
}catch(Exception e){
e.printStackTrace();
}

int width=bi.getWidth();
int height=bi.getHeight();
int minx=bi.getMinX();
int miny=bi.getMinY();
System.out.println("width="+width+",height="+height+".");
System.out.println("minx="+minx+",miniy="+miny+".");

for(int i=minx;i<width;i++){
for(int j=miny;j<height;j++){
//System.out.print(bi.getRGB(jw, ih));
int pixel=bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000 ) >> 16 ;
rgb[1] = (pixel & 0xff00 ) >> 8 ;
rgb[2] = (pixel & 0xff );
System.out.println("i="+i+",j="+j+":("+rgb[0]+","+rgb[1]+","+rgb[2]+")");

}
}

}

}

阅读全文

与javagetbmp相关的资料

热点内容
w10电脑自动删除文件 浏览:26
用手机怎样打印文件 浏览:374
国务院app上留言有什么后果 浏览:159
订餐用什么app 浏览:588
手机数据线哪里有售 浏览:926
中专生学少儿编程是什么 浏览:197
divcss通栏代码 浏览:875
win10设置局域网共享文件夹 浏览:875
如何显示被隐藏的密码错误 浏览:674
win10蓝牙先点接收文件 浏览:971
数据库具有较高的数据独立性 浏览:720
ug圆弧面和斜面怎么编程 浏览:739
公司取名网站哪个好 浏览:639
美国干编程有什么条件 浏览:303
反诈中心app测试题目在哪里找 浏览:576
杨晨晨的写真在什么网站有 浏览:183
加拿大appstore账号 浏览:398
屏幕录制时间太长了文件找不到 浏览:519
和平共处5项原则提出的文件名 浏览:217
powermill编程怎么改名字 浏览:210

友情链接