From 0f30c14088ef1ee37e19f36ccbee67f44ea79bac Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Thu, 24 Sep 2009 14:33:45 -0700 Subject: Fixed screenshot command line tool to deal with new RawImage Also added a rotate method to DDMS. Change-Id: I9ec2774ff0679b8b4f044341470b3dfa527f9680 --- .../src/com/android/screenshot/Screenshot.java | 56 +++++----------------- 1 file changed, 12 insertions(+), 44 deletions(-) (limited to 'screenshot/src/com') diff --git a/screenshot/src/com/android/screenshot/Screenshot.java b/screenshot/src/com/android/screenshot/Screenshot.java index 06e1f6b..a3fe520 100644 --- a/screenshot/src/com/android/screenshot/Screenshot.java +++ b/screenshot/src/com/android/screenshot/Screenshot.java @@ -208,53 +208,21 @@ public class Screenshot { if (rawImage == null) return; - assert rawImage.bpp == 16; - - BufferedImage image; - if (landscape) { - // convert raw data to an Image - image = new BufferedImage(rawImage.height, rawImage.width, - BufferedImage.TYPE_INT_ARGB); - - byte[] buffer = rawImage.data; - int index = 0; - for (int y = 0 ; y < rawImage.height ; y++) { - for (int x = 0 ; x < rawImage.width ; x++) { - - int value = buffer[index++] & 0x00FF; - value |= (buffer[index++] << 8) & 0x0FF00; - - int r = ((value >> 11) & 0x01F) << 3; - int g = ((value >> 5) & 0x03F) << 2; - int b = ((value >> 0) & 0x01F) << 3; - - value = 0xFF << 24 | r << 16 | g << 8 | b; - - image.setRGB(y, rawImage.width - x - 1, value); - } - } - } else { - // convert raw data to an Image - image = new BufferedImage(rawImage.width, rawImage.height, - BufferedImage.TYPE_INT_ARGB); - - byte[] buffer = rawImage.data; - int index = 0; - for (int y = 0 ; y < rawImage.height ; y++) { - for (int x = 0 ; x < rawImage.width ; x++) { - - int value = buffer[index++] & 0x00FF; - value |= (buffer[index++] << 8) & 0x0FF00; - - int r = ((value >> 11) & 0x01F) << 3; - int g = ((value >> 5) & 0x03F) << 2; - int b = ((value >> 0) & 0x01F) << 3; + rawImage = rawImage.getRotated(); + } - value = 0xFF << 24 | r << 16 | g << 8 | b; + // convert raw data to an Image + BufferedImage image = new BufferedImage(rawImage.width, rawImage.height, + BufferedImage.TYPE_INT_ARGB); - image.setRGB(x, y, value); - } + int index = 0; + int IndexInc = rawImage.bpp >> 3; + for (int y = 0 ; y < rawImage.height ; y++) { + for (int x = 0 ; x < rawImage.width ; x++) { + int value = rawImage.getARGB(index); + index += IndexInc; + image.setRGB(x, y, value); } } -- cgit v1.1