Компьютерная графика в Processing, часть 3. Изображения и текст

  • Published on
    15-Jun-2015

  • View
    170

  • Download
    13

Embed Size (px)

DESCRIPTION

Processing.

Transcript

  • 1. Jordi Linares i Pellicer Escola Politcnica Superior dAlcoi Dep. de Sistemes Informtics i Computaci jlinares@dsic.upv.es http://www.dsic.upv.es/~jlinares

2. processing PImage, (image) loadImage() : GIF, JPG, TGA PNG data ( PDE 'Add File', ) , image() image(image, x, y) -> (x, y), image(image, x, y, width, height) -> (x, y) : PImage foto = loadImage("foto.jpg"); image(foto, 0, 0); 3. 3-1 . data. , , ( ) width height im PImage , im.width im.height 4. createImage(width, height, color mode) RGB, ARGB ALPHA RGB 24- (8 , true color) ARGB ALPHA ( ) 5. get() get(x, y) get(x, y, width, height) get() , get(x, y), - : get(x, y, width, height). get() , . 6. set(x, y, color) set(x, y, image) set() , set(x, y, color), (x, y) , . 7. color ( ), color(r, g, b), RGB-, red(color), green(color) blue(color), , RGB. 8. : // foto.jpg data PImage foto_original = loadImage("foto.jpg"); PImage foto_modified = createImage(foto_original.width, foto_original.height, RGB); // 50% for (int i = 0; i < foto_original.width; i++) for (int j = 0; j < foto_original.height; j++) { color c_o = foto_original.get(i, j); color c_d = color(min(255, red(c_o) * 1.5), min(255, green(c_o) * 1.5), min(255, blue(c_o) * 1.5)); foto_modified.set(i, j, c_d); } // size(500, 300); image(foto_original, 0, 0, width/2, height); image(foto_modified, width/2, 0, width/2, height); 9. : // PImage foto_original = loadImage("foto.jpg"); PImage foto_modified = createImage(foto_original.width, foto_original.height / 3, ARGB); // 1/3 , // , // int h23 = foto_original.height * 2 / 3; int h13 = foto_original.height / 3; for (int j = h23; j < foto_original.height; j++) { int alpha = int((j - h23) * (255.0 / h13)) - 128; for (int i = 0; i < foto_original.width; i++) { color c_o = foto_original.get(i, j); color c_d = color(red(c_o), green(c_o), blue(c_o), alpha); foto_modified.set(i, h13 - (j - h23), c_d); } } size(1000, 700); background(0); // image(foto_original, 50, 10); // image(foto_original, 500, 10); image(foto_modified, 500, foto_original.height + 10); 10. 11. save(filename) , . : TIFF, TARGA, JPEG PNG 12. processing PFont data . PDE Create Font' . .vlw loadFont() loadFont() , text() : textAlign(), textSize(), textMode(), textLeading() .. 13. : size(300, 200); background(0); // ( // // processing) PFont font = loadFont("Serif-48.vlw"); // textFont(font); // fill(255, 0, 0); // x=10, y = 50 ( ) text("Hello World", 20, 100); 14. 3-2 , (RGB-) RGB- : -. filter() im.filter(GRAY), im , (1 ). (RED): red(im.get(x, y)) filter() : int[] histogram = new int[256] , RED, : histogram[red(im.get(x, y))]++ . , c . . 15. 3-2 , 256 100, :

Recommended

View more >