<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 銀河使者 閱讀(3284) 評論(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 | 樂蜂網專賣店
    主站蜘蛛池模板: 国产亚洲人成网站观看| 亚洲国产精品午夜电影| 一级毛片免费观看| 亚洲xxxxxx| 免费女人18毛片a级毛片视频| 免费无码av片在线观看| 亚洲人成网站18禁止久久影院| 日韩人妻无码免费视频一区二区三区 | 日韩一级片免费观看| 亚洲国产精品第一区二区| 成人免费视频小说| a级男女仿爱免费视频| 激情亚洲一区国产精品| 91麻豆精品国产自产在线观看亚洲| 91高清免费国产自产拍2021| 亚洲AV无码一区二区一二区| 亚洲成色WWW久久网站| 男女交性永久免费视频播放| 外国成人网在线观看免费视频| 欧洲亚洲国产精华液| 亚洲激情在线视频| 亚洲AV成人潮喷综合网| 黄网站色在线视频免费观看| 精选影视免费在线 | 亚洲精品日韩一区二区小说| 亚洲av日韩综合一区在线观看| 免费a级毛片无码a∨性按摩| 国产免费一区二区三区| 国产91色综合久久免费分享| 久久国产精品免费一区| 亚洲乱妇熟女爽到高潮的片| 亚洲精品自产拍在线观看动漫| 亚洲国产一成久久精品国产成人综合 | 中文字幕亚洲男人的天堂网络| 亚洲欧洲成人精品香蕉网| 日韩免费视频网站| 国产一精品一AV一免费孕妇 | 亚洲精品在线视频| 免费看片免费播放| 日韩av无码成人无码免费| 24小时在线免费视频|