「java里面setRGB」Java里面set可以查找对应对象的值
今天给各位分享java里面setRGB的知识,其中也会对Java里面set可以查找对应对象的值进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
- 2、java中怎么将从下位机读到的320*240的图像灰度值数组创建成一张图片,急在线等
- 3、代码不长,java 图像处理 关天setRGB(x,y,rgb)
- 4、JAVA setRGB使图片变白
- 5、java的setRGB方法没效果?
java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
关于图像像素值,我想要先讲一下Java中如何组织一个图像对象BufferedImage的,
一个BufferedImage的像素数据储存在Raster中,ColorModel里面储存颜色空间,类型等
信息,当前Java只支持一下三种图像格式- JPG,PNG,GIF,如何向让Java支持其它格式,首
先要 完成Java中的图像读写接口,然后打成jar,加上启动参数- Xbootclasspath/p
newimageformatIO.jar即可。
取得BufferedImage的代码如下:
File file = new File("D:\\test\\blue_flower.jpg");
BufferedImage image = ImageIO.read(file);
取得像素使用getRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
return (int [])image.getRaster().getDataElements(x, y, width, height, pixels );
else
return image.getRGB( x, y, width, height, pixels, 0, width );
写入像素,才可能用到getRaster,在type为ARGB 或RGB时,必须使用getRaster().setDataElements方式设置,其他格式直接setRGB,代码如下:
int type= image.getType();
if ( type ==BufferedImage.TYPE_INT_ARGB || type == BufferedImage.TYPE_INT_RGB )
image.getRaster().setDataElements(x, y, width, height, pixels );
else
image.setRGB(x, y, width, height, pixels, 0, width );
java中怎么将从下位机读到的320*240的图像灰度值数组创建成一张图片,急在线等
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.util.Random;
import javax.swing.JFrame;
public class Test {
public static void main(String[] args) {
int[] data = randomBytes(320, 240);
BufferedImage image = createImage(data, 320, 240);
showImage(image);
}
private static BufferedImage createImage(int[] data, int width, int height) {
int type = BufferedImage.TYPE_BYTE_GRAY;
BufferedImage image = new BufferedImage(width, height, type);
for (int i = 0; i data.length; i++) {
int rgb = data[i] * 65536 + data[i] * 256 + data[i];
image.setRGB(i % width, i / width, rgb);
}
return image;
}
private static int[] randomBytes(int width, int height) {
int[] data = new int[width * height];
Random random = new Random();
for (int i = 0; i data.length; i++) {
data[i] = random.nextInt(256);
}
return data;
}
private static void showImage(final BufferedImage image) {
JFrame frame = new JFrame() {
public void paint(Graphics g) {
g.drawImage(image, 100, 100, null);
}
};
frame.setSize(image.getWidth() + 200, image.getHeight() + 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
代码不长,java 图像处理 关天setRGB(x,y,rgb)
不会啊,我试了一下图像是变化的,不过下边这段代码没太懂,为什么i和j要递增2呢?递增1的话感觉效果更有趣一些:)
for(i=0;iwidth-1;i+=2)
for(j=0;jheight-1;j+=2)
{ pix=temp.getRGB(i,j);
if(pix!=im.getRGB(i,j))//每个相素进行比较如果不等
{im.setRGB(i,j,pix);//则更新为现在的像素值。
}
}
JAVA setRGB使图片变白
因为它们的ColorModel不同.判断一张图是灰度图还是彩色图最好的办法就是比对一下某一个像素的RGB是否都为同一个值.因为灰色的这3个值都是相同的而彩色不同.
可以int color = img.getRGB(x,y);//获取某个点的颜色值
int red = color16255;//获取这个点的红色值
int green = color8255;//获取这个点的绿色值
int blue = color255;//获取这个点的蓝色值
if(red==green==blue)System.out.println("这是一张灰度图");
java的setRGB方法没效果?
BufferedImage bi = new BufferedImage(100, 100, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2d = bi.createGraphics();
g2d.setPaint(Color.WHITE);
g2d.fillRect(0, 0, 100, 100);
g2d.dispose();
ImageIO.write(bi, "PNG", new File("D:/Temp/t1.png"));
for(int i = 0; i 100; ++i)
bi.setRGB(i, i, 0xff00ffff);
ImageIO.write(bi, "PNG", new File("D:/Temp/t2.png"));
java里面setRGB的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java里面set可以查找对应对象的值、java里面setRGB的信息别忘了在本站进行查找喔。