java 图片颜色混合

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");  
    }

}

猜你喜欢

转载自blog.csdn.net/qq_38150538/article/details/88799969