| BitmapSample.java |
1 package sample2;
2
3 import fi.jyu.mit.graphics.EasyWindow;
4 import fi.jyu.mit.graphics.Bitmap;
5 import static fi.jyu.mit.graphics.Bitmap.*;
6
7 /**
8 * Esimerkki bitmapin piirtämisestä
9 * @author vesal
10 *
11 */
12 public class BitmapSample {
13
14 /**
15 * Malli siitä miten koko bitmap käydään läpi ja tehdään jotakin pisteille.
16 * @param bm muutettava bitmap
17 */
18 public static void convertGrayScale(Bitmap bm) {
19 for (int y = 0; y < bm.getHeight(); y++) {
20 for (int x = 0; x < bm.getWidth(); x++) {
21 int c = bm.getRGB(x, y);
22 int b = brightness(c);
23 int c2 = packRGB(b, b, b);
24 bm.setRGB(x, y, c2);
25 }
26 }
27 }
28
29 /**
30 * Luetaan tiedostosta yksi kuva joka piirretään sellaisenaan.
31 * Tämän rinnalle piirretään toinen kuva mustavalkoisena.
32 * Kuvien alle piirretään saman kuva niin että vain punaista väriä on käytössä
33 * (and = poistaa ne kohdat joissa on 0)
34 * ja toinen jossa jokaiseen väriin lisätään maksimimäärä punaista
35 * (or = laittaa päälle ne kohdat joissa on 1)
36 * @param args ei käytössä
37 */
38 public static void main(String[] args) {
39 Bitmap bm1 = new Bitmap(0,0,"sample/CarSample.png");
40 Bitmap bm2 = new Bitmap(bm1.getWidth(),0, bm1);
41 Bitmap bm3 = new Bitmap(0, bm1.getHeight(), bm1);
42 Bitmap bm4 = new Bitmap(bm1.getWidth(), bm1.getHeight(), bm1);
43 EasyWindow window = new EasyWindow(bm1.getWidth()*2,bm1.getHeight()*2);
44 window.add(bm1);
45 window.add(bm2);
46 window.add(bm3);
47 window.add(bm4);
48
49 convertGrayScale(bm2);
50 bm3.andPixels(packRGB(255,0,0));
51 bm4.orPixels(packRGB(255,0,0));
52
53 window.redraw();
54 }
55
56 }
57