//
// Exemple qui affiche une image sur une autre
//

import java.awt.image.BufferedImage;
import org.javascool.tools.image.ImageUtils;

void main() {
   // On crée un surface de 400 x 400 pixels avec le (0, 0) en haut à gauche
  reset(400400, false, false);
  // On la remplit au hasard
  for(int i = 0; i < getWidth(); i++)
	for(int j = 0; j < getHeight(); j++)
	  setPixel(i, j, random() 0.5 128 255);
  // Charge une icone qui a de la transparence
  BufferedImage icon = ImageUtils.loadImage("org/javascool/widgets/icons/logo.png");
  //  . . chaque pixel est codé en #AARRGGBB (transparence, rouge, vert, bleu)
  //	  sur quatre octet mis bout à bout sur un mot de 4 x 8 = 32 bits 
  // On l'affiche au dessus de l'image en (i0, j0) coin en haut à gauche
  int i0 = 50, j0 = 60;
  for(int i = ; i < icon.getWidth(); i++)
	for(int j = 0; j < icon.getHeight(); j++
	  if ((0xFF (icon.getRGB(i, j>> 24))) // Octet AA de ##AARRGGBB
		setPixel(i0 + i, j0 + j, 
		0xFF (icon.getRGB(i, j>> 16),	   // Octet RR de #AARRGGBB
		0xFF (icon.getRGB(i, j>> 8),		// Octet GG de #AARRGGBB
		0xFF (icon.getRGB(i, j>> 0));	   // Octet BB de #AARRGGBB
  // l'opérateur xx >> 8 permet de décaler de de 8 bits à droite pour récupérer le 2eme octet, etc..	  
  // l'opérateur 0XFF && xx permet de ne garder que l'octet de droit en mettant à zéro les autres octets
}