📄 colorconvert.java
字号:
package colorconvert;/** * <p>Title: ColorConvert</p> * <p>Description: 实现颜色空间转换</p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: 中国农业大学计算机系</p> * @author 彭波 * @version 1.0 */ import java.awt.*; import java.awt.image.*; import java.awt.geom.*; import java.awt.color.ColorSpace; import javax.swing.*; import javax.swing.JPanel; public class ColorConvert extends JPanel { private Image img; public int w; public int h; private static Color colors[] = { Color.red, Color.pink, Color.orange, Color.yellow, Color.green, Color.magenta, Color.cyan, Color.blue}; float[] elements = {0.0f, -1.0f, 0.0f,-1.0f, 4.f, -1.0f,0.0f, -1.0f, 0.0f}; public ColorConvert(){ img = getToolkit().getImage( ClassLoader.getSystemResource("Image.gif")); MediaTracker mt = new MediaTracker(this); // 加载图片 mt.addImage(img,0); try{ // 判断图片是否完全加载 mt.waitForAll(); } catch(Exception err){ err.printStackTrace(); } w = img.getWidth(this); h = img.getHeight(this); this.setSize(w*2,h*2); } public void paintComponent(Graphics g){ super.paintComponent(g); ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY); BufferedImage bi = new BufferedImage(w,h,BufferedImage.TYPE_INT_RGB); Graphics2D big = bi.createGraphics(); big.drawImage(img,0,0,this); BufferedImageOp biop = null; AffineTransform at = new AffineTransform(); BufferedImage bimg = new BufferedImage(w,h, BufferedImage.TYPE_INT_RGB); Kernel kernel = new Kernel(3,3,elements); ColorConvertOp cop = new ColorConvertOp(cs,null); // 创建灰化颜色转换器 cop.filter(bi,bimg); biop = new AffineTransformOp( at,AffineTransformOp.TYPE_NEAREST_NEIGHBOR); Graphics2D g2d = (Graphics2D)g; g2d.drawImage(img, 0, 0, w, h, null); g2d.drawImage(bimg, w, 0, w, h, null);// g2d.drawImage(bimg,biop,0,0); // 显示缓冲区中的图像 } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -