2012-07-03 3 views
5

У меня есть изображение с базовым изображением, которое может загружать изображение с SD-карты. Пользователь может добавить templates(bitmap images) на этот снимок изображения при нажатии кнопки и может позиционировать добавленное изображение для нужд пользователя. Я хочу сохранить эти несколько изображений как одно изображение на SD-карте. Как я могу это сделать?Сохранить несколько изображений в Android

ответ

3

Вы можете просто получить DrawingCache вашего ImageView, а затем преобразовать его в Bitmap и затем сохранить его в SDCARD.

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

Возможно, вам придется установить разрешение на запись SDCARD в манифест.

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

Взгляните на этот фрагмент:

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

ли эти классы доступны в Android BufferedImage, ImageIO? –

+0

Я не пробовал это .. Просто подсказка .. Это для файлов на основе Java. – Venky

+0

хорошо, похоже, что эти классы недоступны в Android. –

Смежные вопросы