首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

運行時動態分割大圖為圖片數組:Graphics 坐標變換實戰

     編輯:Java 相關知識

核心思路

利用 `Graphics.translate(x, y)` 平移繪圖原點,配合 `drawImage()` 將源圖片指定區域繪製到目標小圖。循環遍歷行列,生成 `Image[]` 數組。

工具類實現

public class ImageUtil {
    public static Image[] splitImage(Image img, int rows, int cols) {
        if (img == null) return null;
        Image[] result = new Image[rows * cols];
        int w = img.getWidth() / cols;
        int h = img.getHeight() / rows;
        for (int i = 0; i < result.length; i++) {
            result[i] = Image.createImage(w, h);
            Graphics g = result[i].getGraphics();
            g.translate((-i % cols) * w, (-i / cols) * h);
            g.drawImage(img, 0, 0, Graphics.LEFT | Graphics.TOP);
        }
        return result;
    }
}

測試 MIDlet 驗證

  • 載入 `/test.png`,繪製原圖。
  • 調用 `splitImage(img, 3, 4)` 分割為 3 行 4 列。
  • 在原圖下方按網格繪製分割後的小圖,間距 2 像素,直觀展示分割效果。

建議源圖寬高能被行列數整除,避免邊緣截斷。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved