<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片在线看| 久久久WWW成人免费精品| 亚洲成人免费在线观看| 亚洲成a人片77777老司机| 黄页免费在线观看| 无码久久精品国产亚洲Av影片| 97人妻精品全国免费视频 | 成人免费无码精品国产电影| 67194在线午夜亚洲| 大地资源二在线观看免费高清| 亚洲人成电影网站色| 日韩精品免费一区二区三区| 国产亚洲精彩视频| 国产成人亚洲精品影院| 中文精品人人永久免费| 中文字幕在线观看亚洲| 91热成人精品国产免费| 精品国产日韩久久亚洲| 四虎影视免费永久在线观看| 久久www免费人成精品香蕉| 亚洲av无码一区二区三区网站 | 亚洲中文久久精品无码ww16| 毛片免费在线观看| 亚洲一区二区三区无码国产| 国产一级淫片免费播放| 国产精品福利在线观看免费不卡| 亚洲ⅴ国产v天堂a无码二区| 四虎国产精品免费久久| 污视频网站免费在线观看| 亚洲乱码一区二区三区在线观看| 精品无码国产污污污免费网站| 亚洲一区二区三区成人网站| 亚洲七七久久精品中文国产| 91久久精品国产免费一区| 欧美亚洲国产SUV| 国产l精品国产亚洲区在线观看| 国产大片91精品免费观看不卡| 国产成人亚洲精品91专区高清| 久久亚洲国产午夜精品理论片| 91视频国产免费| 中国国产高清免费av片|