1 22 23 package de.laures.cewolf.taglib.tags; 24 25 import java.awt.Paint ; 26 import java.awt.Rectangle ; 27 import java.awt.RenderingHints ; 28 import java.awt.TexturePaint ; 29 import java.awt.geom.AffineTransform ; 30 import java.awt.geom.Rectangle2D ; 31 import java.awt.image.BufferedImage ; 32 import java.awt.image.ColorModel ; 33 import java.io.Serializable ; 34 35 import de.laures.cewolf.util.ImageHelper; 36 37 42 public class SerializableTexturePaint implements Paint , Serializable { 43 44 private String image; 45 private int width; 46 private int height; 47 private transient Paint paint = null; 48 49 public SerializableTexturePaint() { 50 } 51 52 53 public SerializableTexturePaint(String image, int width, int height) { 54 this.image = image; 55 this.width = width; 56 this.height = height; 57 } 58 59 private Paint getPaint() { 60 if (paint == null) { 61 createPaint(); 62 } 63 return paint; 64 } 65 66 private void createPaint() { 67 BufferedImage bim = ImageHelper.loadBufferedImage(image); 68 Rectangle rect = new Rectangle (width, height); 69 paint = new TexturePaint (bim, rect); 70 } 71 72 public java.awt.PaintContext createContext(ColorModel colorModel, Rectangle rectangle, Rectangle2D rectangle2D, 73 AffineTransform affineTransform, RenderingHints renderingHints) { 74 return getPaint().createContext(colorModel, rectangle, rectangle2D, affineTransform, renderingHints); 75 } 76 77 public int getTransparency() { 78 return getPaint().getTransparency(); 79 } 80 81 } 82 | Popular Tags |