diff options
author | Xavier Ducrohet <xav@android.com> | 2009-09-24 14:33:45 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@android.com> | 2009-09-24 14:49:49 -0700 |
commit | 0f30c14088ef1ee37e19f36ccbee67f44ea79bac (patch) | |
tree | 5c826becc4c84a33a393c42e5cc80b17b8035703 /screenshot/src/com | |
parent | f3b5ecd7ecfdbc6588c2618a2631506e4f86d898 (diff) | |
download | sdk-0f30c14088ef1ee37e19f36ccbee67f44ea79bac.zip sdk-0f30c14088ef1ee37e19f36ccbee67f44ea79bac.tar.gz sdk-0f30c14088ef1ee37e19f36ccbee67f44ea79bac.tar.bz2 |
Fixed screenshot command line tool to deal with new RawImage
Also added a rotate method to DDMS.
Change-Id: I9ec2774ff0679b8b4f044341470b3dfa527f9680
Diffstat (limited to 'screenshot/src/com')
-rw-r--r-- | screenshot/src/com/android/screenshot/Screenshot.java | 56 |
1 files changed, 12 insertions, 44 deletions
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); } } |