十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先,解压缩的位图的形式,所提取的第一图像的位图数据是在以矩阵的形式,然后,需要处理的像素点上的程序的处理,将处理后的数据完成的基础上,生成一个新的位图,并最终节省新的位图格式,你需要的。总的想法是,你可以使用开源的开发工具包,这两个步骤解压缩和压缩数据处理程序,可以只关注。
成都创新互联公司始终坚持【策划先行,效果至上】的经营理念,通过多达十年累计超上千家客户的网站建设总结了一套系统有效的营销解决方案,现已广泛运用于各行各业的客户,其中包括:酒店设计等企业,备受客户赞扬。
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"));
研究了一晚上,累死了
easyimage.jar这个jar包,里面的东西可以直接调用,处理图片(比如打开等等)
你好,你这种情况我曾经遇过。
不能显示背景图片的原因是它被其他组件挡住了,主要原因是布局的问题,你设置为空,JFrame就不会帮你布局,你要特别注意添加组件的顺序,我特意为你写了一个符合你要求的JFrame,跟你那个完全一样,只要你的图片跟我的图片一样就行了。
解决办法(参照如下代码):
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/*
* MyIndex.java
*
* Created on 2011-5-8, 1:00:26
*/
package testjframebgcolor;
首先导入各种需要的包:\x0d\x0aimport java.awt.Image;\x0d\x0aimport javax.imageio.ImageIO;\x0d\x0aimport java.io.*;\x0d\x0a读取图片的方法如下:\x0d\x0aImage[] array = new Image[10];\x0d\x0aImage image = ImageIO.read(new File("d:\\source.gif"));//根据你实际情况改文件路径吧\x0d\x0aarray[0] = image;\x0d\x0a图片读出来了。\x0d\x0a\x0d\x0a如果你有一个Image对象,想把它写入文件可以这样做:\x0d\x0aBufferedImage image = ImageIO.read(new File("d:\\source.gif"));\x0d\x0a//要想保存这个对象的话你要把image声明为BufferedImage 类型\x0d\x0aImageIO.write(image, "png", new File("f:\\test.png"));