Expose an API to get a bitmap's size in bytes.
Change-Id: I960c3b02b1ba8d3a8d92aaa98955a159e6f3a228 http://b/3184897
This commit is contained in:
@@ -76371,6 +76371,17 @@
|
||||
<parameter name="offsetXY" type="int[]">
|
||||
</parameter>
|
||||
</method>
|
||||
<method name="getByteCount"
|
||||
return="int"
|
||||
abstract="false"
|
||||
native="false"
|
||||
synchronized="false"
|
||||
static="false"
|
||||
final="true"
|
||||
deprecated="not deprecated"
|
||||
visibility="public"
|
||||
>
|
||||
</method>
|
||||
<method name="getConfig"
|
||||
return="android.graphics.Bitmap.Config"
|
||||
abstract="false"
|
||||
|
||||
@@ -19,7 +19,6 @@ package android.graphics;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.util.DisplayMetrics;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.nio.Buffer;
|
||||
import java.nio.ByteBuffer;
|
||||
@@ -342,7 +341,7 @@ public final class Bitmap implements Parcelable {
|
||||
}
|
||||
|
||||
long bufferSize = (long)elements << shift;
|
||||
long pixelSize = (long)getRowBytes() * getHeight();
|
||||
long pixelSize = getByteCount();
|
||||
|
||||
if (bufferSize < pixelSize) {
|
||||
throw new RuntimeException("Buffer not large enough for pixels");
|
||||
@@ -378,7 +377,7 @@ public final class Bitmap implements Parcelable {
|
||||
}
|
||||
|
||||
long bufferBytes = (long)elements << shift;
|
||||
long bitmapBytes = (long)getRowBytes() * getHeight();
|
||||
long bitmapBytes = getByteCount();
|
||||
|
||||
if (bufferBytes < bitmapBytes) {
|
||||
throw new RuntimeException("Buffer not large enough for pixels");
|
||||
@@ -821,6 +820,14 @@ public final class Bitmap implements Parcelable {
|
||||
return nativeRowBytes(mNativeBitmap);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of bytes used to store this bitmap's pixels.
|
||||
*/
|
||||
public final int getByteCount() {
|
||||
// int result permits bitmaps up to 46,340 x 46,340
|
||||
return getRowBytes() * getHeight();
|
||||
}
|
||||
|
||||
/**
|
||||
* If the bitmap's internal config is in one of the public formats, return
|
||||
* that config, otherwise return null.
|
||||
|
||||
@@ -16,8 +16,6 @@
|
||||
|
||||
package android.graphics;
|
||||
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.Color;
|
||||
import android.test.suitebuilder.annotation.SmallTest;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
@@ -42,6 +40,10 @@ public class BitmapTest extends TestCase {
|
||||
assertEquals("rowbytes", 200, bm2.getRowBytes());
|
||||
assertEquals("rowbytes", 200, bm3.getRowBytes());
|
||||
|
||||
assertEquals("byteCount", 80000, bm1.getByteCount());
|
||||
assertEquals("byteCount", 40000, bm2.getByteCount());
|
||||
assertEquals("byteCount", 40000, bm3.getByteCount());
|
||||
|
||||
assertEquals("height", 200, bm1.getHeight());
|
||||
assertEquals("height", 200, bm2.getHeight());
|
||||
assertEquals("height", 200, bm3.getHeight());
|
||||
|
||||
Reference in New Issue
Block a user