java将图片至暗的实现方法

网友投稿 216 2023-05-10


java将图片至暗的实现方法

之前也写过一个代码给一张图片然后把图片变暗,今天我们换一种思路,或者是是另外的一种方式将图片至暗,当然方法也是很简单的,但是对于菜鸟的我在这个地方停留了一天半的时间,将图片至暗

现在我们要将这样的一张图片

变成为

虽然说变暗之后确实没有之间亮的好看,但是不管了,反正那么漂亮的美女和我的关系我不太大,如果说硬是有关系的话,那应该是在梦中了,好了我们直接上代码

package com.epoint.wdg.test;

import java.awt.Color;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

import javax.imageio.ImageIO;

public class ImgTest {

public static void main(String[] args) throws IOException {

File file=new File("C://Users/wdg/Desktop/people.png");

//showParamterofImg(file);

File file2=changeImgtoGray(file);

grayPicToBW(file2);

}

public static void getRGB(File file) throws IOException{

int []rgb =new int[3];

BufferedImage img=ImageIO.read(file);

int pixel=img.getRGB(2, 3);

// 下面三行代码将一个数字转换为RGB数字

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

System.out.println(rgb[0]+"-"+rgb[1]+"-"+rgb[2]);

}

//把图片变灰色

public static File changeImgtoGray(File file) throws IOException{

float []rgb =new float[3];

BufferedImage img=ImageIO.read(file);

//现在我需要获取到没一点的rgb

int y=img.getHeight();

int x=img.getWidth();

BufferedImage grayImage = new BufferedImage(x, y, BufferedImage.TYPE_BYTE_GRAY);

for(int i=0;i

for(int j=0;j

int pixel=img.getRGB(i, j);

// grayImage.setRGB(startX, startY, w, h, rgbArray, offset, scansize);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

// grayPicToBW(newFile);

return newFile;

}

其中最为重要的是这一部分:

int y=img.getHeight();

int x=img.getWidth();

for(int i=0;i

for(int j=0;j

int pixel=img.getRGB(i, j);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

这一部分是获取到到图片的每一点的像素或者说ARGB:

int pixel=img.getRGB(i, j);

然后进一步的获取到RGB,然后我们http://获取到这点像素的灰度值,

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

并且创建一个颜色:

lor color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

这样我们将图片打印出来就是我们第二张图片那样了

for(int j=0;j

int pixel=img.getRGB(i, j);

// grayImage.setRGB(startX, startY, w, h, rgbArray, offset, scansize);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

// grayPicToBW(newFile);

return newFile;

}

其中最为重要的是这一部分:

int y=img.getHeight();

int x=img.getWidth();

for(int i=0;i

for(int j=0;j

int pixel=img.getRGB(i, j);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

这一部分是获取到到图片的每一点的像素或者说ARGB:

int pixel=img.getRGB(i, j);

然后进一步的获取到RGB,然后我们http://获取到这点像素的灰度值,

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

并且创建一个颜色:

lor color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

这样我们将图片打印出来就是我们第二张图片那样了

int pixel=img.getRGB(i, j);

// grayImage.setRGB(startX, startY, w, h, rgbArray, offset, scansize);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

// grayPicToBW(newFile);

return newFile;

}

其中最为重要的是这一部分:

int y=img.getHeight();

int x=img.getWidth();

for(int i=0;i

for(int j=0;j

int pixel=img.getRGB(i, j);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

这一部分是获取到到图片的每一点的像素或者说ARGB:

int pixel=img.getRGB(i, j);

然后进一步的获取到RGB,然后我们http://获取到这点像素的灰度值,

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

并且创建一个颜色:

lor color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

这样我们将图片打印出来就是我们第二张图片那样了

for(int j=0;j

int pixel=img.getRGB(i, j);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

这一部分是获取到到图片的每一点的像素或者说ARGB:

int pixel=img.getRGB(i, j);

然后进一步的获取到RGB,然后我们http://获取到这点像素的灰度值,

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

并且创建一个颜色:

lor color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

这样我们将图片打印出来就是我们第二张图片那样了

int pixel=img.getRGB(i, j);

rgb[0] = (pixel & 0xff0000) >> 16;

rgb[1] = (pixel & 0xff00) >> 8;

rgb[2] = (pixel & 0xff);

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

Color color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

}

}

File newFile = new File("C://Users/wdg/Desktop/"+"/method5.jpg");

ImageIO.write(img, "jpg", newFile);

这一部分是获取到到图片的每一点的像素或者说ARGB:

int pixel=img.getRGB(i, j);

然后进一步的获取到RGB,然后我们http://获取到这点像素的灰度值,

int gray=(int) (rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11);

并且创建一个颜色:

lor color=new Color(gray,gray,gray);

img.setRGB(i, j, color.getRGB());

这样我们将图片打印出来就是我们第二张图片那样了


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:ES6中箭头函数的定义与调用方式详解
下一篇:Spring Boot中使用Actuator的/info端点输出Git版本信息
相关文章

 发表评论

暂时没有评论,来抢沙发吧~