<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 銀河使者 閱讀(3283) 評論(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 | 樂蜂網專賣店
    主站蜘蛛池模板: 亚洲美女视频免费| 亚洲男人的天堂一区二区| 亚洲卡一卡2卡三卡4卡无卡三| 久久99久久成人免费播放| 亚洲精品99久久久久中文字幕 | av网站免费线看| 亚洲精品99久久久久中文字幕 | 亚洲精品蜜夜内射| 精品国产麻豆免费网站| 亚洲高清乱码午夜电影网| 国产免费怕怕免费视频观看| 特级毛片爽www免费版| 亚洲日韩精品一区二区三区无码| 国产成人AV免费观看| 亚洲午夜精品一区二区| 亚洲w码欧洲s码免费| 激情综合亚洲色婷婷五月| 日本免费无遮挡吸乳视频电影| 污污免费在线观看| 亚洲国产精品高清久久久| 在线观看的免费网站无遮挡| 亚洲第一成人在线| 又黄又爽无遮挡免费视频| 国产亚洲精品免费视频播放| 亚洲人成电影亚洲人成9999网 | jlzzjlzz亚洲jzjzjz| 日韩视频在线免费观看| 日本中文字幕免费看| 久久精品国产亚洲77777| 国国内清清草原免费视频99 | 久久久久久免费一区二区三区| 亚洲综合激情视频| 日本免费的一级v一片| 91视频免费观看| 亚洲一区在线免费观看| 亚洲第一网站男人都懂| 男人都懂www深夜免费网站| 亚洲中文字幕在线无码一区二区| 免费看国产曰批40分钟| 无码精品一区二区三区免费视频| 亚洲国产欧美日韩精品一区二区三区 |