2012-07-03 70 views
5

Tôi có chế độ xem hình ảnh cơ bản có thể tải hình ảnh từ thẻ sd. Người dùng có thể thêm templates(bitmap images) vào chế độ xem hình ảnh này khi nhấp vào nút và có thể định vị hình ảnh đã thêm vào nhu cầu của người dùng. Tôi muốn lưu nhiều hình ảnh này dưới dạng một hình ảnh duy nhất vào thẻ sd. Tôi có thể làm cái này như thế nào?Lưu nhiều hình ảnh trong Android

Trả lời

3

Bạn có thể chỉ cần lấy DrawingCache của ImageView của bạn, sau đó chuyển đổi nó thành Bitmap và sau đó lưu nó vào SDCARD.

imageview.setDrawingCacheEnabled(true); 
Bitmap b = imageview.getDrawingCache(); 
b.compress(CompressFormat.JPEG, 100, new FileOutputStream("/sdcard/image.jpg")); 

Bạn có thể phải đặt quyền ghi SDCARD trong tệp kê khai.

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
3

Hãy xem Snippet này:

How to merge multiple images into one image - Java ImageIO

int rows = 2; //we assume the no. of rows and cols are known and each chunk has equal width and height 
     int cols = 2; 
     int chunks = rows * cols; 

     int chunkWidth, chunkHeight; 
     int type; 
     //fetching image files 
     File[] imgFiles = new File[chunks]; 
     for (int i = 0; i < chunks; i++) { 
      imgFiles[i] = new File("archi" + i + ".jpg"); 
     } 

     //creating a bufferd image array from image files 
     BufferedImage[] buffImages = new BufferedImage[chunks]; 
     for (int i = 0; i < chunks; i++) { 
      buffImages[i] = ImageIO.read(imgFiles[i]); 
     } 
     type = buffImages[0].getType(); 
     chunkWidth = buffImages[0].getWidth(); 
     chunkHeight = buffImages[0].getHeight(); 

     //Initializing the final image 
     BufferedImage finalImg = new BufferedImage(chunkWidth*cols, chunkHeight*rows, type); 

     int num = 0; 
     for (int i = 0; i < rows; i++) { 
      for (int j = 0; j < cols; j++) { 
       finalImg.createGraphics().drawImage(buffImages[num], chunkWidth * j, chunkHeight * i, null); 
       num++; 
      } 
     } 
     System.out.println("Image concatenated....."); 
     ImageIO.write(finalImg, "jpeg", new File("finalImg.jpg")); 
+1

Là những lớp học có sẵn trong Android BufferedImage, ImageIO? –

+0

Tôi đã không cố gắng .. Chỉ cần một đầu mối .. Đó là cho các tập tin dựa trên java. – Venky

+0

, có vẻ như các lớp này không có sẵn trong Android .. –

Các vấn đề liên quan