Bitmap: get png encoded data implementation

This commit is contained in:
Longri 2016-07-17 21:21:58 +02:00 committed by Emux
parent fab7020d3d
commit 44b40608f6
5 changed files with 37 additions and 0 deletions

View File

@ -21,6 +21,7 @@ import android.graphics.BitmapFactory;
import android.opengl.GLES20; import android.opengl.GLES20;
import android.opengl.GLUtils; import android.opengl.GLUtils;
import java.io.ByteArrayOutputStream;
import java.io.InputStream; import java.io.InputStream;
import static android.graphics.Bitmap.Config.ARGB_8888; import static android.graphics.Bitmap.Config.ARGB_8888;
@ -43,6 +44,13 @@ public class AndroidBitmap implements org.oscim.backend.canvas.Bitmap {
return mBitmap != null; return mBitmap != null;
} }
@Override
public byte[] getPngEncodedData() {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
this.mBitmap.compress(Bitmap.CompressFormat.PNG, 0, outputStream);
return outputStream.toByteArray();
}
/** /**
* @param format ignored always ARGB8888 * @param format ignored always ARGB8888
*/ */

View File

@ -21,6 +21,7 @@ import android.graphics.BitmapFactory;
import android.opengl.GLES20; import android.opengl.GLES20;
import android.opengl.GLUtils; import android.opengl.GLUtils;
import java.io.ByteArrayOutputStream;
import java.io.InputStream; import java.io.InputStream;
import static android.graphics.Bitmap.Config.ARGB_8888; import static android.graphics.Bitmap.Config.ARGB_8888;
@ -43,6 +44,13 @@ public class AndroidBitmap implements org.oscim.backend.canvas.Bitmap {
return mBitmap != null; return mBitmap != null;
} }
@Override
public byte[] getPngEncodedData(){
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
this.mBitmap.compress(Bitmap.CompressFormat.PNG, 0, outputStream);
return outputStream.toByteArray();
}
/** /**
* @param format ignored always ARGB8888 * @param format ignored always ARGB8888
*/ */

View File

@ -25,6 +25,7 @@ import org.oscim.backend.canvas.Bitmap;
import org.oscim.renderer.bucket.TextureBucket; import org.oscim.renderer.bucket.TextureBucket;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -151,4 +152,15 @@ public class AwtBitmap implements Bitmap {
public boolean isValid() { public boolean isValid() {
return true; return true;
} }
@Override
public byte[] getPngEncodedData(){
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
try {
ImageIO.write(this.bitmap, "png", outputStream);
} catch (IOException e) {
e.printStackTrace();
}
return outputStream.toByteArray();
}
} }

View File

@ -189,6 +189,13 @@ public class IosBitmap implements Bitmap {
return this.cgBitmapContext != null; return this.cgBitmapContext != null;
} }
@Override
public byte[] getPngEncodedData() {
UIImage uiImage = new UIImage(cgBitmapContext.toImage());
NSData data = uiImage.toPNGData();
return data.getBytes();
}
/** /**
* Returns a ByteArray from InputStream * Returns a ByteArray from InputStream

View File

@ -62,4 +62,6 @@ public interface Bitmap {
void uploadToTexture(boolean replace); void uploadToTexture(boolean replace);
boolean isValid(); boolean isValid();
byte[] getPngEncodedData();
} }