「颜色灰度java」颜色灰度高
本篇文章给大家谈谈颜色灰度java,以及颜色灰度高对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、求一个JAVA方法 要求计算RGB32位模式的颜色转换为灰度 小弟对色彩和图形不是很懂。谢谢
- 2、java程序将彩色png图片转为黑白的
- 3、java 中如何获得灰度图像的像素值,getRGB和getRaster有什么区别?
- 4、java 24位彩图转256色灰度图
- 5、请问在怎么用JAVA将一张电脑上面的彩色图片变成灰度的?详细一点哈,谢谢咯
- 6、java 8位灰度图的灰度值怎么获取
求一个JAVA方法 要求计算RGB32位模式的颜色转换为灰度 小弟对色彩和图形不是很懂。谢谢
public static final byte[] getPixels(Image img)
{
if (img == null)
return null ;
int width = img.getWidth(null) ;
int height = img.getHeight(null) ;
BufferedImage bi = new BufferedImage(width,height,BufferedImage.TYPE_BYTE_GRAY) ;
bi.getGraphics().drawImage(img,0,0,null) ;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
try
{
ImageIO.write(bi, "png", bos);
} catch (IOException ex)
{
}
return bos.toByteArray() ;
}
java程序将彩色png图片转为黑白的
帮你搜了一段网上流行的代码:
灰度变换
下面的程序使用三种方法对一个彩色图像进行灰度变换,变换的效果都不一样。一般而言,灰度变换的算法是将象素的三个颜色分量使用R*0.3+G*0.59+B*0.11得到灰度值,然后将之赋值给红绿蓝,这样颜色取得的效果就是灰度的。另一种就是取红绿蓝三色中的最大值作为灰度值。java核心包也有一种算法,但是没有看源代码,不知道具体算法是什么样的,效果和上述不同。
/* GrayFilter.java*/
/*@author:cherami */
/*email:cherami@163.net*/
import java.awt.image.*;
public class GrayFilter extends RGBImageFilter {
int modelStyle;
public GrayFilter() {
modelStyle=GrayModel.CS_MAX;
canFilterIndexColorModel=true;
}
public GrayFilter(int style) {
modelStyle=style;
canFilterIndexColorModel=true;
}
public void setColorModel(ColorModel cm) {
if (modelStyle==GrayModel
else if (modelStyle==GrayModel
}
public int filterRGB(int x,int y,int pixel) {
return pixel;
}
}
/* GrayModel.java*/
/*@author:cherami */
/*email:cherami@163.net*/
import java.awt.image.*;
public class GrayModel extends ColorModel {
public static final int CS_MAX=0;
public static final int CS_FLOAT=1;
ColorModel sourceModel;
int modelStyle;
public GrayModel(ColorModel sourceModel) {
super(sourceModel.getPixelSize());
this.sourceModel=sourceModel;
modelStyle=0;
}
public GrayModel(ColorModel sourceModel,int style) {
super(sourceModel.getPixelSize());
this.sourceModel=sourceModel;
modelStyle=style;
}
public void setGrayStyle(int style) {
modelStyle=style;
}
protected int getGrayLevel(int pixel) {
if (modelStyle==CS_MAX) {
return Math.max(sourceModel.getRed(pixel),Math.max(sourceModel.getGreen(pixel),sourceModel.getBlue(pixel)));
}
else if (modelStyle==CS_FLOAT){
return (int)(sourceModel.getRed(pixel)*0.3+sourceModel.getGreen(pixel)*0.59+sourceModel.getBlue(pixel)*0.11);
}
else {
return 0;
}
}
public int getAlpha(int pixel) {
return sourceModel.getAlpha(pixel);
}
public int getRed(int pixel) {
return getGrayLevel(pixel);
}
public int getGreen(int pixel) {
return getGrayLevel(pixel);
}
public int getBlue(int pixel) {
return getGrayLevel(pixel);
}
public int getRGB(int pixel) {
int gray=getGrayLevel(pixel);
return (getAlpha(pixel)24)+(gray16)+(gray8)+gray;
}
}
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 24位彩图转256色灰度图
BufferedImage中8位灰度图的RGB分量相同,gray[]改为:
int tem=red+green+blue;
gray[i*w+j] =new Color(tem,tem,tem).getRGB();
请问在怎么用JAVA将一张电脑上面的彩色图片变成灰度的?详细一点哈,谢谢咯
/** *//**
* 彩色转为黑白
* @param source 输入文件路径
* @param result 输出文件路径
*/
public static void gray(String source, String result)
{
try
{
BufferedImage src = ImageIO.read(new File(source));
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
src = op.filter(src, null);
ImageIO.write(src, "JPEG", new File(result)); //输出 JPEG 格式
}
catch (IOException e)
{
e.printStackTrace();
}
}
java 8位灰度图的灰度值怎么获取
public int filterRGB(int x, int y, int rgb) {
int a = rgb 0xff000000;//将最高位(24-31)的信息(alpha通道)存储到a变量
int r = (rgb 16) 0xff;//取出次高位(16-23)红色分量的信息
int g = (rgb 8) 0xff;//取出中位(8-15)绿色分量的信息
int b = rgb 0xff;//取出低位(0-7)蓝色分量的信息
rgb = (r * 77 + g * 151 + b * 28) 8; // NTSC luma,算出灰度值
return a | (rgb 16) | (rgb 8) | rgb;//将灰度值送入各个颜色分量
}
颜色灰度java的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于颜色灰度高、颜色灰度java的信息别忘了在本站进行查找喔。
发布于:2022-12-02,除非注明,否则均为
原创文章,转载请注明出处。