aboutsummaryrefslogtreecommitdiffstats
path: root/screenshot/src/com
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2009-09-24 14:33:45 -0700
committerXavier Ducrohet <xav@android.com>2009-09-24 14:49:49 -0700
commit0f30c14088ef1ee37e19f36ccbee67f44ea79bac (patch)
tree5c826becc4c84a33a393c42e5cc80b17b8035703 /screenshot/src/com
parentf3b5ecd7ecfdbc6588c2618a2631506e4f86d898 (diff)
downloadsdk-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.java56
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);
}
}