Java 如何将图像附加在一起?

Java 如何将图像附加在一起?,java,android,image-processing,bitmap,out-of-memory,Java,Android,Image Processing,Bitmap,Out Of Memory,我有一个项目,我需要在一个大的图像上应用图像过滤器。为了避免OutOfMemoryException,我将原始图像分割成更小的部分(分幅),然后在更小的分幅上应用过滤器 然而,我似乎无法将瓷砖组合在一起,以创建与原始图像大小相同的操纵图像 我不能在画布上画画,因为画布太大,会导致OutOfMemoryException 到目前为止,我尝试了以下代码: try { OutputStream outputStream = new BufferedOutputStream(new FileOu

我有一个项目,我需要在一个大的图像上应用图像过滤器。为了避免OutOfMemoryException,我将原始图像分割成更小的部分(分幅),然后在更小的分幅上应用过滤器

然而,我似乎无法将瓷砖组合在一起,以创建与原始图像大小相同的操纵图像

我不能在画布上画画,因为画布太大,会导致OutOfMemoryException

到目前为止,我尝试了以下代码:

try {
    OutputStream outputStream = new BufferedOutputStream(new FileOutputStream(file));
    ByteArrayOutputStream stream = null;

    if (outputStream != null) {
        for (int i = 0; i < 4; i++) {
            stream = new ByteArrayOutputStream();
            if (bitmap != null) {
                bitmap.recycle();
            }

            bitmap = BitmapFactory.decodeFile(Directory.OCR_IMG + "test-" + i + ".jpg");
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);

            byte[] byteArray = stream.toByteArray();

            outputStream.write(byteArray, 0, byteArray.length);

            stream.flush();
            stream.close();
        }
}
catch (Exception e) {
    e.printStackTrace();
}
finally {
    outputStream.close();
}
试试看{
OutputStream OutputStream=new BufferedOutputStream(new FileOutputStream(file));
ByteArrayOutputStream=null;
if(outputStream!=null){
对于(int i=0;i<4;i++){
stream=newbytearrayoutputstream();
if(位图!=null){
bitmap.recycle();
}
位图=BitmapFactory.decodeFile(Directory.OCR_IMG+“test-”+i+“.jpg”);
compress(bitmap.CompressFormat.PNG,100,流);
byte[]byteArray=stream.toByteArray();
write(byteArray,0,byteArray.length);
stream.flush();
stream.close();
}
}
捕获(例外e){
e、 printStackTrace();
}
最后{
outputStream.close();
}
但生成的图像仅包含第一个平铺


任何帮助都将不胜感激。谢谢!

这一个所做的
(int i=0;i<4;i++){
?为什么是4?@RandykaYudhistira刚刚用4作为第一部分的数量use@RandykaYudhistirabyteArray的偏移量参数不是吗?不是流中要写入的位置吗?哦,是的。我弄错了。对不起。我认为不可能使用outputstream。也许你可以读取