本文整理汇总了Java中com.facebook.common.memory.PooledByteBuffer.read方法的典型用法代码示例。如果您正苦于以下问题:Java PooledByteBuffer.read方法的具体用法?Java PooledByteBuffer.read怎么用?Java PooledByteBuffer.read使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.facebook.common.memory.PooledByteBuffer
的用法示例。
在下文中一共展示了PooledByteBuffer.read方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: getFirstBytesAsHexString
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
/**
* Returns first n bytes of encoded image as hexbytes
*
* @param length the number of bytes to return
*/
public String getFirstBytesAsHexString(int length) {
CloseableReference<PooledByteBuffer> imageBuffer = getByteBufferRef();
if (imageBuffer == null) {
return "";
}
int imageSize = getSize();
int resultSampleSize = Math.min(imageSize, length);
byte[] bytesBuffer = new byte[resultSampleSize];
try {
PooledByteBuffer pooledByteBuffer = imageBuffer.get();
if (pooledByteBuffer == null) {
return "";
}
pooledByteBuffer.read(0, bytesBuffer, 0, resultSampleSize);
} finally {
imageBuffer.close();
}
StringBuilder stringBuilder = new StringBuilder(bytesBuffer.length * 2);
for (byte b : bytesBuffer) {
stringBuilder.append(String.format("%02X", b));
}
return stringBuilder.toString();
}
示例2: decodeByteArrayAsPurgeable
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
/**
* Decodes a byteArray into a purgeable bitmap
*
* @param bytesRef the byte buffer that contains the encoded bytes
* @return
*/
@Override
protected Bitmap decodeByteArrayAsPurgeable(
CloseableReference<PooledByteBuffer> bytesRef,
BitmapFactory.Options options) {
final PooledByteBuffer pooledByteBuffer = bytesRef.get();
final int length = pooledByteBuffer.size();
final CloseableReference<byte[]> encodedBytesArrayRef = mFlexByteArrayPool.get(length);
try {
final byte[] encodedBytesArray = encodedBytesArrayRef.get();
pooledByteBuffer.read(0, encodedBytesArray, 0, length);
Bitmap bitmap = BitmapFactory.decodeByteArray(
encodedBytesArray,
0,
length,
options);
return Preconditions.checkNotNull(bitmap, "BitmapFactory returned null");
} finally {
CloseableReference.closeSafely(encodedBytesArrayRef);
}
}
示例3: isCompleteAt
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
/**
* Returns true if the image is a JPEG and its data is already complete at the specified length,
* false otherwise.
*/
public boolean isCompleteAt(int length) {
if (mImageFormat != DefaultImageFormats.JPEG) {
return true;
}
// If the image is backed by FileInputStreams return true since they will always be complete.
if (mInputStreamSupplier != null) {
return true;
}
// The image should be backed by a ByteBuffer
Preconditions.checkNotNull(mPooledByteBufferRef);
PooledByteBuffer buf = mPooledByteBufferRef.get();
return (buf.read(length - 2) == (byte) JfifUtil.MARKER_FIRST_BYTE)
&& (buf.read(length - 1) == (byte) JfifUtil.MARKER_EOI);
}
示例4: decodeJPEGByteArrayAsPurgeable
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
/**
* Decodes a byteArray containing jpeg encoded bytes into a purgeable bitmap
*
* <p> Adds a JFIF End-Of-Image marker if needed before decoding.
*
* @param bytesRef the byte buffer that contains the encoded bytes
* @return
*/
@Override
protected Bitmap decodeJPEGByteArrayAsPurgeable(
CloseableReference<PooledByteBuffer> bytesRef,
int length,
BitmapFactory.Options options) {
byte[] suffix = endsWithEOI(bytesRef, length) ? null : EOI;
final PooledByteBuffer pooledByteBuffer = bytesRef.get();
Preconditions.checkArgument(length <= pooledByteBuffer.size());
// allocate bigger array in case EOI needs to be added
final CloseableReference<byte[]> encodedBytesArrayRef = mFlexByteArrayPool.get(length + 2);
try {
byte[] encodedBytesArray = encodedBytesArrayRef.get();
pooledByteBuffer.read(0, encodedBytesArray, 0, length);
if (suffix != null) {
putEOI(encodedBytesArray, length);
length += 2;
}
Bitmap bitmap = BitmapFactory.decodeByteArray(
encodedBytesArray,
0,
length,
options);
return Preconditions.checkNotNull(bitmap, "BitmapFactory returned null");
} finally {
CloseableReference.closeSafely(encodedBytesArrayRef);
}
}
示例5: createNakedBitmap
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
@TargetApi(Build.VERSION_CODES.HONEYCOMB_MR1)
@Override
public Bitmap createNakedBitmap(
int width, int height, Bitmap.Config bitmapConfig) {
CloseableReference<PooledByteBuffer> jpgRef = mJpegGenerator.generate(
(short) width,
(short) height);
EncodedImage encodedImage = null;
CloseableReference<byte[]> encodedBytesArrayRef = null;
try {
encodedImage = new EncodedImage(jpgRef);
encodedImage.setImageFormat(DefaultImageFormats.JPEG);
BitmapFactory.Options options = getBitmapFactoryOptions(
encodedImage.getSampleSize(),
bitmapConfig);
int length = jpgRef.get().size();
final PooledByteBuffer pooledByteBuffer = jpgRef.get();
encodedBytesArrayRef =
mFlexByteArrayPool.get(length + 2);
byte[] encodedBytesArray = encodedBytesArrayRef.get();
pooledByteBuffer.read(0, encodedBytesArray, 0, length);
Bitmap bitmap = BitmapFactory.decodeByteArray(
encodedBytesArray,
0,
length,
options);
bitmap.setHasAlpha(true);
bitmap.eraseColor(Color.TRANSPARENT);
return bitmap;
} finally {
CloseableReference.closeSafely(encodedBytesArrayRef);
EncodedImage.closeSafely(encodedImage);
CloseableReference.closeSafely(jpgRef);
}
}
示例6: endsWithEOI
import com.facebook.common.memory.PooledByteBuffer; //导入方法依赖的package包/类
protected static boolean endsWithEOI(CloseableReference<PooledByteBuffer> bytesRef, int length) {
PooledByteBuffer buffer = bytesRef.get();
return length >= 2 &&
buffer.read(length - 2) == (byte) JfifUtil.MARKER_FIRST_BYTE &&
buffer.read(length - 1) == (byte) JfifUtil.MARKER_EOI;
}