Java 写透明PNG图片保存本地


import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Transparency;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;


public class DrawPic extends JFrame {

    private Mypanel mp;
    public  DrawPic()
    {
        this.setSize(500,500);
        this.setLocation(100,100);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        mp = new Mypanel();
        
        mp.test();
        this.add(mp);
        this.setVisible(true);
    }
    
    public static void main(String[] args){
        new DrawPic();
    }
    
    private class Mypanel extends JPanel{
        public void paint(Graphics g){
            super.paint(g);             
                for(int i = 0; i < 108; i++){
                    Color cl = new Color(255,0,0,10+i*2);
                    Color c2 = new Color(0,255,0,10+i*2);
                    g.setColor(cl);
                    g.drawRect(10, i, 1, 1);
                    g.setColor(c2);
                    g.drawRect(7, i, 1, 1);
                }
        }
        
        public void test(){
            /*
             * 保存图片
             */
            BufferedImage image = new BufferedImage(192,108,BufferedImage.TYPE_INT_ARGB);
             Graphics2D g =  image.createGraphics();

             image = g.getDeviceConfiguration().createCompatibleImage(192,108, Transparency.TRANSLUCENT);
             g.dispose();
             g = image.createGraphics();
             
                for(int i = 0; i < 108; i++){
                    Color cl = new Color(255,0,0,10+i*2);
                    Color c2 = new Color(0,255,0,10+i*2);
                    g.setColor(cl);
                    g.drawRect(10, i, 1, 1);
                    g.setColor(c2);
                    g.drawRect(7, i, 1, 1);
                }
                try {
                    ImageIO.write(image, "png", new File("d:/1.png"));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

    }
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM