2012-07-03 19 views
5

私はsdカードから画像を読み込むことができる基本画像ビューを持っています。ユーザーはボタンクリックでこの画像ビューにtemplates(bitmap images)を追加して、追加された画像をユーザーのニーズに合わせることができます。私はこれらの複数の画像を1枚の画像としてSDカードに保存したい。これどうやってするの?複数の画像をAndroidに保存

答えて

3

ImageViewのDrawingCacheを取得して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で利用できないようです。 –

関連する問題