Changeset 1280
- Timestamp:
- 03/07/10 17:36:09 (5 months ago)
- Location:
- ide/trunk/src/org/korsakow
- Files:
-
- 3 modified
-
ide/resources/media/AbstractPlayableImage.java (modified) (1 diff)
-
ide/resources/media/ThumbnailImage.java (modified) (4 diffs)
-
services/encoders/image/JavaImageIOImageEncoder.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ide/trunk/src/org/korsakow/ide/resources/media/AbstractPlayableImage.java
r564 r1280 44 44 } 45 45 } 46 public static Dimension getAspectRespectingDimension(int outterWidth, int outterHeight, float aspectRatio) { 47 Dimension inner = new Dimension(outterWidth, (int)(outterWidth / aspectRatio)); 48 if(outterWidth/aspectRatio < outterHeight) { 49 return new Dimension(outterWidth, (int)(outterWidth/aspectRatio)); 50 } else { 51 return new Dimension((int)(outterHeight*aspectRatio), outterHeight); 52 } 53 } 46 54 } -
ide/trunk/src/org/korsakow/ide/resources/media/ThumbnailImage.java
r564 r1280 19 19 { 20 20 private JComponent component; 21 private String filename; 22 private int width = 320; 23 private int height = 240; 21 private final String filename; 24 22 25 23 public ThumbnailImage(String filename) … … 34 32 public Component getComponent() { 35 33 if (component == null) { 36 component = new ImageLabel(filename, width, height);34 component = new ImageLabel(filename, 320, 240); 37 35 } 38 36 return component; … … 40 38 private static class ImageLabel extends JLabel 41 39 { 42 private String filename;43 private Image cache;40 private final String filename; 41 private final Image cache; 44 42 private int width; 45 43 private int height; … … 48 46 this.filename = filename; 49 47 ImageIcon icon = new ImageIcon(filename); 50 cache = icon.getImage().getScaledInstance(width, height, Image.SCALE_FAST); 51 setPreferredSize(new Dimension(width, height)); 48 Dimension scaledDim = AbstractPlayableImage.getAspectRespectingDimension(width, height, icon.getIconWidth() / (float)icon.getIconHeight()); 49 cache = icon.getImage().getScaledInstance(scaledDim.width, scaledDim.height, Image.SCALE_FAST); 50 setPreferredSize(new Dimension(scaledDim.width, scaledDim.height)); 52 51 setIcon(icon); 53 52 } 53 @Override 54 54 public void doLayout() 55 55 { -
ide/trunk/src/org/korsakow/services/encoders/image/JavaImageIOImageEncoder.java
r1232 r1280 11 11 import java.util.Collections; 12 12 13 import javax.imageio.IIOImage; 13 14 import javax.imageio.ImageIO; 15 import javax.imageio.ImageWriteParam; 16 import javax.imageio.ImageWriter; 17 import javax.imageio.stream.FileImageOutputStream; 14 18 15 19 import org.korsakow.services.encoders.FileExternalEncoder; … … 50 54 } 51 55 try { 52 if (!ImageIO.write(image, getFormatName(dstFormat), destFile)) 53 throw new ImageEncoderException("..."); 56 if (!ImageIO.getImageWritersByFormatName(getFormatName(dstFormat)).hasNext()) 57 throw new ImageEncoderException("No Image writer for : " + getFormatName(dstFormat)); 58 ImageWriter writer = ImageIO.getImageWritersByFormatName(getFormatName(dstFormat)).next(); 59 ImageWriteParam params = writer.getDefaultWriteParam(); 60 params.setCompressionMode(ImageWriteParam.MODE_EXPLICIT); 61 params.setCompressionQuality(1); 62 writer.setOutput(new FileImageOutputStream(destFile)); 63 writer.write(null, new IIOImage(image, null, null), params); 54 64 } catch (IOException e) { 55 65 throw new ImageEncoderException(e);
