package com.lc.dome.common.utils;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.Date;
import java.util.Random;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import org.springframework.beans.factory.annotation.Value;
public class Image1 {
public String setAlpha(String os,String rgbd) {
String[] rgba=rgbd.split(",");
Random random = new Random();
int hhcolor=Integer.valueOf(rgba[0]).intValue();
int hhcolor1=Integer.valueOf(rgba[1]).intValue();
int hhcolor2=Integer.valueOf(rgba[2]).intValue();
/*int r=random.nextInt(256);
int g=random.nextInt(256);
int b=random.nextInt(256);*/
try {
ImageIcon imageIcon = new ImageIcon(os);
BufferedImage bufferedImage = new BufferedImage(imageIcon.getIconWidth(),imageIcon.getIconHeight()
, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D g2D = (Graphics2D) bufferedImage.getGraphics();
g2D.drawImage(imageIcon.getImage(), 0, 0,
imageIcon.getImageObserver());
//循环每一个像素点,改变像素点的Alpha值
int alpha = 100;
for (int j1 = bufferedImage.getMinY(); j1 < bufferedImage.getHeight(); j1++) {
for (int j2 = bufferedImage.getMinX(); j2 < bufferedImage.getWidth(); j2++) {
int pixel = bufferedImage.getRGB(j2, j1);
int[] rgb = new int[3];
rgb[0] = (pixel & 0xff0000) >> 16;
rgb[1] = (pixel & 0xff00) >> 8;
rgb[2] = (pixel & 0xff);
if(rgb[0]>0){
rgb[0]=(rgb[0]+hhcolor)/2;
rgb[1]=(rgb[1]+hhcolor1)/2;
rgb[2]=(rgb[2]+hhcolor2)/2;
int color = ((0xFF << 24)|( rgb[0] << 16)|( rgb[1] << 8)| rgb[2]);
/*System.out.println("i=" + j1 + ",j=" + j2 + ":(" + rgb[0] + ","
+ rgb[1] + "," + rgb[2] + ")");*/
//System.out.println("---");
// System.out.println(pixel);
//int rgbvalue=(65536*(255-))+(256*Green)+(Blue);
// bufferedImage.setRGB(startX, startY, w, h, rgbArray, offset, scansize);
bufferedImage.setRGB(j2, j1, color);
}
}
}
g2D.drawImage(bufferedImage, 0, 0, imageIcon.getImageObserver());
long pngnum=new Date().getTime();
//生成图片为PNG
ImageIO.write(bufferedImage, "png", new File("D://1"));
// System.out.println(uploadFolder+pngnum+".png");
return "D://1";
}
catch (Exception e) {
e.printStackTrace();
return "error";
}
}
public static void main(String[] args) throws Exception {
Image1 rc = new Image1();
Random random = new Random();
int r=random.nextInt(256);
int g=random.nextInt(256);
int b=random.nextInt(256);
int color = ((0xFF << 24)|(r << 16)|(g << 8)|b);
System.out.println(color);
//rc.setAlpha("D:\\xiao.jpg");
//rc.setAlpha("D:\\xiao.jpg");
rc.setAlpha("D:\\toufa01.png","255,255,255");
}
}
java 图片颜色混合
猜你喜欢
转载自blog.csdn.net/qq_38150538/article/details/88799969
今日推荐
周排行