User Tools

Site Tools


ascii_art

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
ascii_art [2023/03/25 14:10] – [Step 2. Load your image’s pixel data into a 2-dimensional array] frchrisascii_art [2023/03/25 14:23] – [ASCII Art] frchris
Line 33: Line 33:
                    """"                                               """"                           
 </code> </code>
 +
 +This Lab is based on one of  [[https://robertheaton.com/2018/06/12/programming-projects-for-advanced-beginners-ascii-art/|Robert Heaton's Advanced Beginners Projects]].  I have made starter code for Java Students about to take the AP Computer Science A Exam.  You need to know somehting about 2D Arrays and String Objects.
 +
 ==== Step 0. Choose an image ==== ==== Step 0. Choose an image ====
  
Line 158: Line 161:
   private BufferedImage image;   private BufferedImage image;
   private String fileName;   private String fileName;
 +  private int width,height;
 +  private int[] rgb; // for 8bit RGB packed in an int array
 +  private Color[][] px; 
   public Step2(String fileName)   public Step2(String fileName)
   {   {
Line 166: Line 172:
       image = ImageIO.read(new File(fileName));       image = ImageIO.read(new File(fileName));
       System.out.println(fileName + " read ");       System.out.println(fileName + " read ");
-     +      width = image.getWidth(); 
-      System.out.println("Demensions of " + fileName + ": "); +      height = image.getHeight(); 
-      // Print the width and height of the image using a BufferedImage method.  +      System.out.println("Demensions of " + fileName + ": " + width + " by " + height); 
 +      rgb = image.getRGB(0,0, width, height, null, 0, width); 
 +      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] ); 
 +      
            
     }      } 
Line 176: Line 190:
     }     }
   }   }
 +  public Color[][] getPx() { return px;}
   public static void main(String[] args)   public static void main(String[] args)
   {   {
Line 184: Line 198:
 } }
 </code> </code>
- You can see what your new 2D Array of Color looks like with + You can see what your new 2D Array of Color looks like with {{ ::step2tester.java |Step2Tester.java}}
  
 ==== 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  ====
Line 191: Line 205:
  
  
-[[https://robertheaton.com/2018/06/12/programming-projects-for-advanced-beginners-ascii-art/|This is from RObert Heaton's Advanced Beginners Projects]]+[[https://robertheaton.com/2018/06/12/programming-projects-for-advanced-beginners-ascii-art/|This is from Robert Heaton's Advanced Beginners Projects]]
ascii_art.txt · Last modified: 2023/03/27 10:46 by frchris

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki