• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 2, 文章 - 73, 評論 - 60, 引用 - 0
            數據加載中……

            J2ME中的圖像處理

            1.圖像縮放
            1.1 使用midp2.0的getRGB()函數
            public static Image ZoomImage(Image src, int desW, int desH) {
              Image desImg 
            = null;
              
            int srcW = src.getWidth(); // 原始圖像寬
              int srcH = src.getHeight(); // 原始圖像高
              int[] srcBuf = new int[srcW * srcH]; // 原始圖片像素信息緩存

              src.getRGB(srcBuf, 
            0, srcW, 00, srcW, srcH);

              
            // 計算插值表
              int[] tabY = new int[desH];
              
            int[] tabX = new int[desW];

              
            int sb = 0;
              
            int db = 0;
              
            int tems = 0;
              
            int temd = 0;
              
            int distance = srcH > desH ? srcH : desH;
              
            for (int i = 0; i <= distance; i++) { /* 垂直方向 */
               tabY[db] 
            = sb;
               tems 
            += srcH;
               temd 
            += desH;
               
            if (tems > distance) {
                tems 
            -= distance;
                sb
            ++;
               }
               
            if (temd > distance) {
                temd 
            -= distance;
                db
            ++;
               }
              }

              sb 
            = 0;
              db 
            = 0;
              tems 
            = 0;
              temd 
            = 0;
              distance 
            = srcW > desW ? srcW : desW;
              
            for (int i = 0; i <= distance; i++) { /* 水平方向 */
               tabX[db] 
            = (short) sb;
               tems 
            += srcW;
               temd 
            += desW;
               
            if (tems > distance) {
                tems 
            -= distance;
                sb
            ++;
               }
               
            if (temd > distance) {
                temd 
            -= distance;
                db
            ++;
               }
              }

              
            // 生成放大縮小后圖形像素buf
              int[] desBuf = new int[desW * desH];
              
            int dx = 0;
              
            int dy = 0;
              
            int sy = 0;
              
            int oldy = -1;
              
            for (int i = 0; i < desH; i++) {
               
            if (oldy == tabY[i]) {
                System.arraycopy(desBuf, dy 
            - desW, desBuf, dy, desW);
               } 
            else {
                dx 
            = 0;
                
            for (int j = 0; j < desW; j++) {
                 desBuf[dy 
            + dx] = srcBuf[sy + tabX[j]];
                 dx
            ++;
                }
                sy 
            += (tabY[i] - oldy) * srcW;
               }
               oldy 
            = tabY[i];
               dy 
            += desW;
              }

              
            // 生成圖片
              desImg = Image.createRGBImage(desBuf, desW, desH, false);
              
            return desImg;
             }

            1.2 midp1.0下可用的縮放函數
             public static Image scaleImage (Image src, int dstW, int dstH) {
               
               int srcW = src.getWidth();
               
               int srcH = src.getHeight();
               

               
               Image tmp = Image.createImage(dstW, srcH);
               
               Graphics g = tmp.getGraphics();
              

               
               int delta = (srcW << 16/ dstW;
               
               int pos = delta/2;
               

               
               for (int x = 0; x < dstW; x++) {
               
               g.setClip(x, 01, srcH);
              
                g.drawImage(src, x - (pos >> 16), 0, Graphics.LEFT | Graphics.TOP);
               
               pos += delta;
               
              }
               
              Image dst = Image.createImage(dstW, dstH);
               
              g = dst.getGraphics();
               

              
               delta = (srcH << 16/ dstH;
              
               pos = delta/2;
               

              
               for (int y = 0; y < dstH; y++) {
              
               g.setClip(0, y, dstW, 1);
               
              g.drawImage(tmp, 0, y - (pos >> 16), Graphics.LEFT | Graphics.TOP);
               
              pos += delta;
               
             }
                return dst;
               
             }
               
            }
            2.其他圖像的處理,如圖像的顏色/翻轉
            下面提供了源代碼, 點擊這里下載

            posted on 2007-11-09 19:57 郭天文 閱讀(1032) 評論(0)  編輯 收藏 引用 所屬分類: J2ME

            久久精品国产久精国产果冻传媒| 久久久久久国产精品免费无码| 国产成人精品久久一区二区三区av | 无夜精品久久久久久| 波多野结衣久久一区二区| 久久精品国产99久久无毒不卡 | 无码日韩人妻精品久久蜜桃 | 久久国产精品无码网站| 色诱久久久久综合网ywww | 漂亮人妻被中出中文字幕久久| 狠狠色综合网站久久久久久久高清| 久久香综合精品久久伊人| 狠狠精品久久久无码中文字幕| 亚洲国产精品无码成人片久久| 久久99精品久久久久久秒播| 久久天天躁狠狠躁夜夜网站| 麻豆av久久av盛宴av| 久久国产成人午夜AV影院| 成人资源影音先锋久久资源网| 久久人人爽人人爽人人av东京热| 国产激情久久久久影院小草| 99久久精品费精品国产一区二区 | 综合久久国产九一剧情麻豆| 欧美性大战久久久久久| 国产一区二区精品久久凹凸| 91精品婷婷国产综合久久| 97热久久免费频精品99| 久久天天躁狠狠躁夜夜avapp| yy6080久久| 久久午夜无码鲁丝片秋霞| 香港aa三级久久三级老师2021国产三级精品三级在 | 精品国产乱码久久久久软件| 久久久久国产一区二区| 99久久99久久精品国产| 9久久9久久精品| 99久久这里只有精品| 亚洲国产精品久久久久婷婷软件| 亚洲午夜精品久久久久久人妖| 久久伊人精品青青草原高清| 色综合久久88色综合天天 | 久久人人爽人人爽人人爽|