//----------------------------------------------------------------------------// // // // T e s t I m a g e // // // //----------------------------------------------------------------------------// // <editor-fold defaultstate="collapsed" desc="hdr"> // // Copyright (C) Hervé Bitteur 2000-2011. All rights reserved. // // This software is released under the GNU General Public License. // // Goto http://kenai.com/projects/audiveris to report bugs or suggestions. // //----------------------------------------------------------------------------// // </editor-fold> package omr.jai; import java.awt.BorderLayout; import java.awt.Container; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Toolkit; import java.awt.geom.AffineTransform; import java.awt.image.MemoryImageSource; import javax.swing.JFrame; import javax.swing.JPanel; public class TestImage extends JPanel { //RenderedImage image; Image image; AffineTransform scaleXform = AffineTransform.getScaleInstance(1f, 1f); private static char WHITE = '-'; // And transparent private static char[] charTable = new char[] { '#', // 0 Black '$', // 1 '*', // 2 '0', // 3 'o', // 4 '+', // 5 '.', // 6 WHITE // 7 }; public TestImage() { JFrame frame = new JFrame(getClass().toString()); Container pane = frame.getContentPane(); pane.setLayout(new BorderLayout()); pane.add(this); image = decodeImage(new String[] { "----------------------------------------------------------------------------", "----------------------------------------------------------------------------", "----------------------------------------------------------------------------", "----------------------------------------------------------------------------", "----####---------------####---------------####---------------####-----------", "--------##-----------------##-----------------##-----------------##---------", "----------####---------------####---------------####---------------####-----", "--------------#------------------#------------------#------------------#----", "--------------#------------------#------------------#------------------#----", "----------------------------------------------------------------------------", "---#############------#############------#############------#############---", "---#############------#############------#############------#############---", "----------------------------------------------------------------------------", "----------------------------------------------------------------------------", "----####---------------####---------------####---------------####-----------", "--------##-----------------##-----------------##-----------------##---------", "----------####---------------####---------------####---------------####-----", "--------------#------------------#------------------#------------------#----", "--------------#------------------#------------------#------------------#----", "----------------------------------------------------------------------------", "---#############------#############------#############------#############---", "---#############------#############------#############------#############---", "----------------------------------------------------------------------------", "----------------------------------------------------------------------------", "----####---------------####---------------####---------------####-----------", "--------##-----------------##-----------------##-----------------##---------", "----------####---------------####---------------####---------------####-----", "--------------#------------------#------------------#------------------#----", "--------------#------------------#------------------#------------------#----", "----------------------------------------------------------------------------", "---#############------#############------#############------#############---", "---#############------#############------#############------#############---", "----------------------------------------------------------------------------", "----------------------------------------------------------------------------" }); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(100, 100); frame.pack(); frame.setSize(100, 100); frame.setVisible(true); } public static void main(String... args) { new TestImage(); } public void paintComponent(Graphics g) { // For background super.paintComponent(g); // Meant for visual check if (image != null) { Graphics2D g2 = (Graphics2D) g; //g2.drawRenderedImage (image, scaleXform); g2.drawImage (image, 1, 1, this); } } public static Image decodeImage (String[] rows) { final int width = rows[0].length(); final int height = rows.length; int[] pix = new int[width * height]; int index = 0; for (String row : rows) { for (int x = 0; x < width; x++) { pix[index++] = decodeARGB (row.charAt (x)); } } // Create the proper image icon Toolkit tk = Toolkit.getDefaultToolkit (); return tk.createImage (new MemoryImageSource (width, height, pix, 0, width)); } private static int decodeARGB (char c) { // Check the char if (c == WHITE) { return 0; } else { for (int i = charTable.length -1; i >= 0; i--) { if (charTable[i] == c) { int level = 3 + i * 36; // Range 3 .. 255 (not too bad) return 255 << 24 | // Alpha (opaque) level << 16 | // R level << 8 | // G level; // B } } } return 0; } }