Android中將一個圖片切割成多個圖片


有種場景,我們想將一個圖片切割成多個圖片。比如我們在開發一個拼圖的游戲,就首先要對圖片進行切割。

以下是封裝好的兩個類,可以實現圖片的切割。僅供參考和學習。

一個是ImagePiece類,此類保存了一個Bitmap對象和一個標識圖片的順序索引的int變量。

 1 package com.example.imagesplitter;
 2 
 3 import android.graphics.Bitmap;
 4 
 5 /**
 6  * 圖片切割實體類
 7  */
 8 public class ImagePiece {
 9     public int index = 0;
10     public Bitmap bitmap = null;
11 }

一個是ImageSplitter類,有一個靜態方法split,傳入的參數是要切割的Bitmap對象,和橫向和豎向的切割片數

 1 package com.example.imagesplitter;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import android.graphics.Bitmap;
 7 
 8 /**
 9  * 圖片切割工具類
10  */
11 public class ImageSplitter {
12 
13     /**
14      * 圖片切割
15      * @param bitmap 導入圖片
16      * @param x x軸切割
17      * @param y y軸切割
18      * @return
19      */
20     public static List<ImagePiece> split(Bitmap bitmap, int x, int y) {
21         List<ImagePiece> pieces = new ArrayList<ImagePiece>();
22         int width = bitmap.getWidth();
23         int height = bitmap.getHeight();
24         int pieceWidth = width / x;
25         int pieceHeight = height / y;
26         for (int i = 0; i < y; i++) {
27             for (int j = 0; j < x; j++) {
28                 ImagePiece image = new ImagePiece();
29                 image.index = j + i * x;
30                 int xValue = j * pieceWidth;
31                 int yValue = i * pieceHeight;
32                 image.bitmap = Bitmap.createBitmap(bitmap, xValue, yValue,
33                         pieceWidth, pieceHeight);
34                 pieces.add(image);
35             }
36         }
37         return pieces;
38     }
39 }

這里的切割,主要使用的是Bitmap對象的createBitmap方法,不再做具體描述。

 

鏈接: https://pan.baidu.com/s/1Dptj0hH_ZGqeAWkH78_-aA 提取碼: 4mjm ,這是我寫的Demo


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM