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

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

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

    隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    使用Java等比例縮放圖像

    本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!

        縮放圖像的基本原理是創(chuàng)建一個(gè)目標(biāo)大小的畫布,然后讀取源圖像,并將該圖像繪制這個(gè)畫布上。為了使程序通用,源圖像和縮放后的目標(biāo)圖像應(yīng)用分別使用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參數(shù)表示縮放比例,1至100,當(dāng)然,也可以大于100,那就是放大圖像了。但要注意,放得太大會(huì)失真的。
        當(dāng)然,也可以重構(gòu)scaleImage方法,使其可以接收?qǐng)D像文件名,代碼如下:

        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開發(fā)完全講義(第2版)(本書版權(quán)已輸出到臺(tái)灣)

    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 銀河使者 閱讀(3282) 評(píng)論(4)  編輯  收藏 所屬分類: java 原創(chuàng)

    評(píng)論

    # re: 使用Java等比例縮放圖像  回復(fù)  更多評(píng)論   

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

    # re: 使用Java等比例縮放圖像  回復(fù)  更多評(píng)論   

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

    # re: 使用Java等比例縮放圖像  回復(fù)  更多評(píng)論   

    當(dāng)有大量圖片的時(shí)候,此方法性能可能會(huì)是個(gè)障礙。
    2010-04-18 01:21 | .Sun

    # re: 使用Java等比例縮放圖像  回復(fù)  更多評(píng)論   

    環(huán)境按時(shí)打算的
    2010-04-18 15:27 | 樂蜂網(wǎng)專賣店
    主站蜘蛛池模板: 思思99re66在线精品免费观看| 亚洲中文无码永久免费| 国产免费观看黄AV片| 亚洲一区二区免费视频| 国产啪精品视频网站免费尤物| 羞羞视频免费网站含羞草| 亚洲人成网国产最新在线| 亚洲黄色在线网站| 亚洲精品国产精品乱码在线观看| 亚洲 无码 在线 专区| 成**人免费一级毛片| 猫咪社区免费资源在线观看 | 狠狠久久永久免费观看| 18成禁人视频免费网站| 久久精品私人影院免费看| 精品国产福利尤物免费| 一区二区三区在线免费| 日本中文字幕免费看| 激情小说亚洲色图| 激情婷婷成人亚洲综合| 亚洲AV综合色区无码一二三区| 国产精品亚洲专区在线观看 | 精品久久久久久国产免费了| 黄网站在线播放视频免费观看 | 日韩一区二区免费视频| 日韩成人在线免费视频 | 国产精品久久久久久亚洲影视| 亚洲人成电影网站色| 亚洲最大无码中文字幕| 亚洲欧美成人一区二区三区| 亚洲人成人网站18禁| 国产偷国产偷亚洲高清在线 | 亚洲无线码一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品| 亚洲Aⅴ无码一区二区二三区软件| 国产一区在线观看免费| 亚洲精品无码AV中文字幕电影网站 | 国产又大又黑又粗免费视频| 四虎永久免费影院| 亚洲精品成人网久久久久久| 中文字幕亚洲一区二区va在线|