ascii_art
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
ascii_art [2023/03/25 12:15] – [Step 1. Read your image and print its height and width in pixels] frchris | ascii_art [2023/03/25 14:21] – [Step 5. What if it looks your image looks squashed?] frchris | ||
---|---|---|---|
Line 117: | Line 117: | ||
import java.io.IOException; | import java.io.IOException; | ||
import javax.imageio.ImageIO; | import javax.imageio.ImageIO; | ||
- | import java.awt.*; | ||
- | import java.awt.geom.AffineTransform; | ||
- | import javax.swing.JFrame; | ||
- | import javax.swing.JPanel; | ||
- | import javax.swing.JLabel; | ||
- | import javax.swing.ImageIcon; | ||
public class Step1 | public class Step1 | ||
Line 132: | Line 126: | ||
try | try | ||
{ | { | ||
- | // the line that reads the image file | ||
this.fileName = fileName; | this.fileName = fileName; | ||
image = ImageIO.read(new File(fileName)); | image = ImageIO.read(new File(fileName)); | ||
Line 155: | Line 148: | ||
</ | </ | ||
==== Step 2. Load your image’s pixel data into a 2-dimensional array ==== | ==== Step 2. Load your image’s pixel data into a 2-dimensional array ==== | ||
+ | <code Step2.java> | ||
+ | import java.awt.image.BufferedImage; | ||
+ | import java.io.File; | ||
+ | import java.io.IOException; | ||
+ | import javax.imageio.ImageIO; | ||
+ | |||
+ | public class Step2 | ||
+ | { | ||
+ | private BufferedImage image; | ||
+ | private String fileName; | ||
+ | private int width, | ||
+ | private int[] rgb; // for 8bit RGB packed in an int array | ||
+ | private Color[][] px; | ||
+ | public Step2(String fileName) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | // the line that reads the image file | ||
+ | this.fileName = fileName; | ||
+ | image = ImageIO.read(new File(fileName)); | ||
+ | System.out.println(fileName + " read "); | ||
+ | width = image.getWidth(); | ||
+ | height = image.getHeight(); | ||
+ | System.out.println(" | ||
+ | rgb = image.getRGB(0, | ||
+ | System.out.println(rgb.length); | ||
+ | // rgb is a 1D array, with the rows listed one after the other. | ||
+ | ///to convert to a 2D array use something like this: | ||
+ | // grid (x,y) = rgb[ y*width + x]; | ||
+ | // Make a new 2D array of color name px, and fill it from the 1D rgb array | ||
+ | // for example, px[0][0] = new Color ( rgb[0] ); | ||
+ | | ||
+ | |||
+ | } | ||
+ | catch (IOException e) | ||
+ | { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | } | ||
+ | public Color[][] getPx() { return px;} | ||
+ | public static void main(String[] args) | ||
+ | { | ||
+ | new Step2(" | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </ | ||
+ | You can see what your new 2D Array of Color looks like with {{ :: | ||
+ | |||
==== Step 3. Convert the RGB tuples of your pixels into single brightness numbers | ==== Step 3. Convert the RGB tuples of your pixels into single brightness numbers | ||
==== Step 4. Convert brightness numbers to ASCII characters | ==== Step 4. Convert brightness numbers to ASCII characters | ||
Line 160: | Line 202: | ||
- | [[https:// | + | [[https:// |
ascii_art.txt · Last modified: 2023/03/27 10:46 by frchris