1
package org.herac.tuxguitar.gui.util;
3
import java.io.ByteArrayOutputStream;
4
import java.io.OutputStream;
6
import org.eclipse.swt.graphics.ImageData;
7
import org.eclipse.swt.graphics.ImageLoader;
8
import org.eclipse.swt.graphics.PaletteData;
9
import org.eclipse.swt.graphics.RGB;
11
public class ImageUtils {
13
* Escribe el ImageData en el outputStream
18
public static void writeImage(ImageData data,OutputStream outputStream,int format){
19
ImageLoader loader = new ImageLoader();
20
loader.data = new ImageData[]{data};
21
loader.save(outputStream,format);
25
* Convierte un ImageData en un array de bytes
30
public static byte[] imageToByteArray(ImageData data,int format){
31
ByteArrayOutputStream out = new ByteArrayOutputStream();
32
writeImage(data,out,format);
33
return out.toByteArray();
37
* Crea una mascara a partir de src.
44
public static ImageData applyMask(ImageData src,RGB alpha,RGB none){
45
ImageData maskData = new ImageData(src.width,src.height,1,new PaletteData(new RGB[]{ none,alpha } ));
46
for(int x = 0; x< maskData.width; x++) {
47
for(int y = 0; y < maskData.height; y++) {
48
RGB rgb = src.palette.getRGB(src.getPixel(x, y));
49
if(rgb.red == alpha.red && rgb.green == alpha.green && rgb.blue == alpha.blue){
50
maskData.setPixel(x, y, maskData.palette.getPixel(none));
52
maskData.setPixel(x, y, maskData.palette.getPixel(alpha));