<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 312, 文章 - 14, 評論 - 1393, 引用 - 0
    數據加載中……

    使用Java等比例縮放圖像

    本文為原創,如需轉載,請注明作者和出處,謝謝!

        縮放圖像的基本原理是創建一個目標大小的畫布,然后讀取源圖像,并將該圖像繪制這個畫布上。為了使程序通用,源圖像和縮放后的目標圖像應用分別使用InputStream和OutputStream來表示,代碼如下:
        public static void scaleImage(InputStream imgInputStream,
                OutputStream imgOutputStream, 
    int scale)
        {
            
    try
            {

                Image src 
    = javax.imageio.ImageIO.read(imgInputStream);
                
    int width = (int) (src.getWidth(null* scale / 100.0);
                
    int height = (int) (src.getHeight(null* scale / 100.0);
                BufferedImage bufferedImage 
    = new BufferedImage(width, height,
                        BufferedImage.TYPE_INT_RGB);

                 bufferedImage.getGraphics().drawImage(
                        src.getScaledInstance(width, height, Image.SCALE_SMOOTH),
                        
    00null);
                JPEGImageEncoder encoder 
    = JPEGCodec
                        .createJPEGEncoder(imgOutputStream);
                encoder.encode( bufferedImage);

            }
            
    catch (IOException e)
            {
                e.printStackTrace();
            }
        }

        其中scale參數表示縮放比例,1至100,當然,也可以大于100,那就是放大圖像了。但要注意,放得太大會失真的。
        當然,也可以重構scaleImage方法,使其可以接收圖像文件名,代碼如下:

        public static void scaleImage(String imgSrc, String imgDist, int scale)
        {
            
    try
            {
                File file 
    = new File(imgSrc);
                
    if (!file.exists())
                {
                    
    return;
                }
                InputStream is 
    = new FileInputStream(file);
                OutputStream os 
    = new FileOutputStream(imgDist);
                scaleImage(is, os, scale);
                is.close();
                os.close();
            }
            
    catch (Exception e)
            {

            }
        }

        下面的代碼按15%縮放
    scaleImage("E:\\pictures\\test.jpg""e:\\test1.jpg"15);





    Android開發完全講義(第2版)(本書版權已輸出到臺灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

    posted on 2010-04-16 15:11 銀河使者 閱讀(3290) 評論(4)  編輯  收藏 所屬分類: java 原創

    評論

    # re: 使用Java等比例縮放圖像  回復  更多評論   

    dpi自動變成96了,對于圖片質量要求高的。
    可以參考一下這里:
    http://www.java-forums.org/java-applets/13546-image-resizing-dpi.html
    2010-04-16 16:17 | rox

    # re: 使用Java等比例縮放圖像  回復  更多評論   

    源圖像和縮放后的目標圖像應用分別使用InputStream和OutputStream來表示
    2010-04-17 11:36 | 俏物悄語

    # re: 使用Java等比例縮放圖像  回復  更多評論   

    當有大量圖片的時候,此方法性能可能會是個障礙。
    2010-04-18 01:21 | .Sun

    # re: 使用Java等比例縮放圖像  回復  更多評論   

    環境按時打算的
    2010-04-18 15:27 | 樂蜂網專賣店
    主站蜘蛛池模板: 久久免费国产精品一区二区| 亚洲av无码专区在线电影天堂| jyzzjyzz国产免费观看| 女人18毛片特级一级免费视频| 亚洲色图激情文学| 插B内射18免费视频| 中文字幕亚洲综合久久综合| 成人免费视频软件网站| 亚洲国产成人久久精品软件| 精品少妇人妻AV免费久久洗澡| 亚洲国产高清精品线久久| 豆国产96在线|亚洲| 黄色网站软件app在线观看免费| 国产亚洲精品AA片在线观看不加载| 久久久久久久国产免费看| 亚洲精品乱码久久久久久| 国产精品视频白浆免费视频| 久久精品国产亚洲AV嫖农村妇女| 久久久久国产精品免费网站| 亚洲精品日韩专区silk| 无码国产精品一区二区免费I6| 亚洲日韩亚洲另类激情文学| 久久伊人免费视频| 亚洲国产日韩女人aaaaaa毛片在线| 国语成本人片免费av无码| 午夜在线亚洲男人午在线| 免费观看激色视频网站(性色) | 一级一级一级毛片免费毛片| 在线观看亚洲av每日更新| 18禁美女裸体免费网站 | 亚洲高清无码在线观看| a毛片全部免费播放| 亚洲精品老司机在线观看| 99麻豆久久久国产精品免费 | 成人免费夜片在线观看| 亚洲AV无码精品无码麻豆| japanese色国产在线看免费| 久久亚洲精品国产精品| yy6080亚洲一级理论| 亚洲日本人成中文字幕| 亚洲Av无码乱码在线观看性色|