Changeset 1280

Show
Ignore:
Timestamp:
03/07/10 17:36:09 (5 months ago)
Author:
dreisch
Message:

-fixed #1108

Location:
ide/trunk/src/org/korsakow
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • ide/trunk/src/org/korsakow/ide/resources/media/AbstractPlayableImage.java

    r564 r1280  
    4444                } 
    4545        } 
     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        } 
    4654} 
  • ide/trunk/src/org/korsakow/ide/resources/media/ThumbnailImage.java

    r564 r1280  
    1919{ 
    2020        private JComponent component; 
    21         private String filename; 
    22         private int width = 320; 
    23         private int height = 240; 
     21        private final String filename; 
    2422         
    2523        public ThumbnailImage(String filename) 
     
    3432        public Component getComponent() { 
    3533                if (component == null) { 
    36                         component = new ImageLabel(filename, width, height); 
     34                        component = new ImageLabel(filename, 320, 240); 
    3735                } 
    3836                return component; 
     
    4038        private static class ImageLabel extends JLabel 
    4139        { 
    42                 private String filename; 
    43                 private Image cache; 
     40                private final String filename; 
     41                private final Image cache; 
    4442                private int width; 
    4543                private int height; 
     
    4846                        this.filename = filename; 
    4947                        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)); 
    5251                        setIcon(icon); 
    5352                } 
     53                @Override 
    5454                public void doLayout() 
    5555                { 
  • ide/trunk/src/org/korsakow/services/encoders/image/JavaImageIOImageEncoder.java

    r1232 r1280  
    1111import java.util.Collections; 
    1212 
     13import javax.imageio.IIOImage; 
    1314import javax.imageio.ImageIO; 
     15import javax.imageio.ImageWriteParam; 
     16import javax.imageio.ImageWriter; 
     17import javax.imageio.stream.FileImageOutputStream; 
    1418 
    1519import org.korsakow.services.encoders.FileExternalEncoder; 
     
    5054                } 
    5155                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); 
    5464                } catch (IOException e) { 
    5565                        throw new ImageEncoderException(e);