在Android中保存多张图片。

5
我有一个基础图像视图,可以从SD卡加载图像。用户可以在单击按钮时将模板(位图图像)添加到此图像视图上,并可以将添加的图像定位到用户需要的位置。我想将这些多个图像保存为单个图像到SD卡上。我该如何做到这一点?
2个回答

3
你可以简单地获取你的ImageView的DrawingCache,然后将其转换为位图,最后将其保存到SD卡中。
imageview.setDrawingCacheEnabled(true);
Bitmap b = imageview.getDrawingCache();
b.compress(CompressFormat.JPEG, 100, new FileOutputStream("/sdcard/image.jpg"));

你可能需要在清单文件中设置SD卡的写入权限。

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

3

看一下这个代码片段:

如何将多个图像合并为一个图像 - 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? - Andro Selva
我没有尝试过那个..只是一个线索..那是针对基于Java的文件的。 - Venky
是的,我正在检查 Jar 包是否可用,如果可用,我们可以使用它,对吧? - Venky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接