1.bufferimagetype_int_rgb和argb的区
2.java å¦ä½ç¨BufferedImageç»åºå¾å
bufferimagetype_int_rgb和argb的区
您要问的是bufferimagetype_int_rgb和argb的区别吗?像素排列顺序,透明度控制。
1、druiddatasource源码像素排列顺序:bufferimagetype_int_rgb表示红色、绿色和蓝色三个通道的粉色预警指标源码像素值按照排列顺序分别存储,即每个像素的2023表白墙源码三个通道值按照RGB顺序存储,而argb表示一个像素的四个通道:透明度、红色、绿色和蓝色,按照ARGB的顺序存储,argb比rgb多了一个透明度通道。
2、透明度控制:argb表示中最后一个通道是dema指标公式源码透明度,用于控制像素的透明度级别,透明度值为0表示完全透明,进货网站源码分享表示完全不透明,而bufferimagetype_int_rgb则不包含透明度通道,所有的像素都是完全不透明的。
java å¦ä½ç¨BufferedImageç»åºå¾å
drawimageé½æ¯å¯¹Image对象å¤çï¼åç»ä»¶çç»å¶ä¸ç¹å ³ç³»ä¹æ²¡;ænewImageçå¾åç»å°imageéé¢å»;
å®ä¾ä»£ç å¦ä¸ï¼
public class Tank extends JFrame {
private Image img = null;
boolean fi = false;
BufferedImage bi;
public Tank() {
this.addKeyListener(new KeyMonitor());
this.setBounds(, , , );
this.setVisible(true);
this.setDefaultCloseOperation(Tank.EXIT_ON_CLOSE);
}
class KeyMonitor extends KeyAdapter {
@Override
public void keyPressed(KeyEvent e) {
switch (e.getKeyCode()) {
case : {
img = getToolkit().createImage("res/TankPic/pre.GIF");
fi = true;
System.out.println(img);
repaint();
break;
}
}
}
}
public void paint(Graphics g) {
super.paint(g);
bi = new BufferedImage(getSize().width, getSize().height, BufferedImage.TYPE_INT_ARGB);
bi.getGraphics();
if (fi) {
g = img.getGraphics();
g.drawImage(bi, , , , , this);
}
}
public static void main(String[] args) {
new Tank();
}
}