~ubuntu-branches/ubuntu/oneiric/tuxguitar/oneiric

« back to all changes in this revision

Viewing changes to TuxGuitar/src/org/herac/tuxguitar/gui/util/ImageUtils.java

  • Committer: Bazaar Package Importer
  • Author(s): Philippe Coval
  • Date: 2008-06-19 00:30:30 UTC
  • mfrom: (1.1.1 upstream) (2.1.3 hardy)
  • Revision ID: james.westby@ubuntu.com-20080619003030-agens2gvd5m4dacu
New upstream release (Closes: #481728) also (LP: #176979, #212207)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.herac.tuxguitar.gui.util;
 
2
 
 
3
import java.io.ByteArrayOutputStream;
 
4
import java.io.OutputStream;
 
5
 
 
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;
 
10
 
 
11
public class ImageUtils {
 
12
        /**
 
13
         * Escribe el ImageData en el outputStream
 
14
         * @param data
 
15
         * @param outputStream
 
16
         * @param format
 
17
         */
 
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);
 
22
        }
 
23
        
 
24
        /**
 
25
         * Convierte un ImageData en un array de bytes
 
26
         * @param data
 
27
         * @param format
 
28
         * @return
 
29
         */
 
30
        public static byte[] imageToByteArray(ImageData data,int format){
 
31
                ByteArrayOutputStream out = new ByteArrayOutputStream();
 
32
                writeImage(data,out,format);
 
33
                return out.toByteArray();
 
34
        }
 
35
        
 
36
        /**
 
37
         * Crea una mascara a partir de src.
 
38
         * 
 
39
         * @param src
 
40
         * @param alpha
 
41
         * @param none
 
42
         * @return ImageData
 
43
         */
 
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));
 
51
                                }else{
 
52
                                        maskData.setPixel(x, y, maskData.palette.getPixel(alpha));
 
53
                                }
 
54
                        }
 
55
                }
 
56
                return maskData;
 
57
        }
 
58
}