Created
September 8, 2020 06:32
-
-
Save Ahwar/b6797f81671b2f8fb3f7cc5de3c9a5dc to your computer and use it in GitHub Desktop.
This Java code converts android's ImageProxy to Bitmap.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private Bitmap toBitmap(Image image) { | |
Image.Plane[] planes = image.getPlanes(); | |
ByteBuffer yBuffer = planes[0].getBuffer(); | |
ByteBuffer uBuffer = planes[1].getBuffer(); | |
ByteBuffer vBuffer = planes[2].getBuffer(); | |
int ySize = yBuffer.remaining(); | |
int uSize = uBuffer.remaining(); | |
int vSize = vBuffer.remaining(); | |
byte[] nv21 = new byte[ySize + uSize + vSize]; | |
//U and V are swapped | |
yBuffer.get(nv21, 0, ySize); | |
vBuffer.get(nv21, ySize, vSize); | |
uBuffer.get(nv21, ySize + vSize, uSize); | |
YuvImage yuvImage = new YuvImage(nv21, ImageFormat.NV21, image.getWidth(), image.getHeight(), null); | |
ByteArrayOutputStream out = new ByteArrayOutputStream(); | |
yuvImage.compressToJpeg(new Rect(0, 0, yuvImage.getWidth(), yuvImage.getHeight()), 75, out); | |
byte[] imageBytes = out.toByteArray(); | |
return BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length); | |
} |
the same thing happened to me in my image analysis use case, I changed the resolution of the image in the image analysis use case.
try changing the aspect ratio or resolution of an image or don't change the aspect ratio and image resolution at all.
I'm getting a distorted image as well. I am not trying to do any kind of analysis. I have a ton of code that works with bitmaps and I need to be able to use that code as is, but I am bringing in an ImageProxy object through React-Native and I just cannot figure out how to get it not to be distorted.
I am having the same problem. I created a plugin to Process Frames. In Android 12 I get distorted image, exact the same above.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Getting distorted image like below
This is my code