com.facebook.imageutils.JfifUtil Java Examples
The following examples show how to use
com.facebook.imageutils.JfifUtil.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: AddImageTransformMetaDataProducerTest.java From fresco with MIT License | 6 votes |
@Test public void testOnNewResultLastAndJpeg() { int rotationAngle = 180; int orientation = 1; int width = 10; int height = 20; when(ImageFormatChecker.getImageFormat_WrapIOException(any(InputStream.class))) .thenReturn(DefaultImageFormats.JPEG); when(JfifUtil.getAutoRotateAngleFromOrientation(orientation)).thenReturn(rotationAngle); when(JfifUtil.getOrientation(any(InputStream.class))).thenReturn(orientation); when(BitmapUtil.decodeDimensionsAndColorSpace(any(InputStream.class))) .thenReturn(new ImageMetaData(width, height, null)); mAddMetaDataConsumer.onNewResult(mFinalResult, Consumer.IS_LAST); ArgumentCaptor<EncodedImage> argumentCaptor = ArgumentCaptor.forClass(EncodedImage.class); verify(mConsumer).onNewResult(argumentCaptor.capture(), eq(Consumer.IS_LAST)); EncodedImage encodedImage = argumentCaptor.getValue(); assertTrue(EncodedImage.isValid(encodedImage)); assertEquals(DefaultImageFormats.JPEG, encodedImage.getImageFormat()); assertEquals(rotationAngle, encodedImage.getRotationAngle()); assertEquals(width, encodedImage.getWidth()); assertEquals(height, encodedImage.getHeight()); }
Example #2
Source File: AddImageTransformMetaDataProducerTest.java From fresco with MIT License | 6 votes |
@Test public void testOnNewResultNotLastAndJpeg() { int rotationAngle = 180; int orientation = 1; int width = 10; int height = 20; when(ImageFormatChecker.getImageFormat_WrapIOException(any(InputStream.class))) .thenReturn(DefaultImageFormats.JPEG); when(JfifUtil.getAutoRotateAngleFromOrientation(orientation)).thenReturn(rotationAngle); when(JfifUtil.getOrientation(any(InputStream.class))).thenReturn(orientation); when(BitmapUtil.decodeDimensionsAndColorSpace(any(InputStream.class))) .thenReturn(new ImageMetaData(width, height, null)); mAddMetaDataConsumer.onNewResult(mFinalResult, Consumer.IS_LAST); ArgumentCaptor<EncodedImage> argumentCaptor = ArgumentCaptor.forClass(EncodedImage.class); verify(mConsumer).onNewResult(argumentCaptor.capture(), eq(Consumer.IS_LAST)); EncodedImage encodedImage = argumentCaptor.getValue(); assertTrue(EncodedImage.isValid(encodedImage)); assertEquals(DefaultImageFormats.JPEG, encodedImage.getImageFormat()); assertEquals(rotationAngle, encodedImage.getRotationAngle()); assertEquals(width, encodedImage.getWidth()); assertEquals(height, encodedImage.getHeight()); }
Example #3
Source File: AddImageTransformMetaDataProducerTest.java From fresco with MIT License | 6 votes |
@Test public void testOnNewResultNotLast_RotationNotFound() { when(ImageFormatChecker.getImageFormat_WrapIOException(any(InputStream.class))) .thenReturn(DefaultImageFormats.JPEG); when(JfifUtil.getOrientation(any(InputStream.class))).thenReturn(0); when(BitmapUtil.decodeDimensionsAndColorSpace(any(InputStream.class))) .thenReturn(new ImageMetaData(-1, -1, null)); mAddMetaDataConsumer.onNewResult(mIntermediateResult, Consumer.NO_FLAGS); ArgumentCaptor<EncodedImage> argumentCaptor = ArgumentCaptor.forClass(EncodedImage.class); verify(mConsumer).onNewResult(argumentCaptor.capture(), eq(Consumer.NO_FLAGS)); EncodedImage encodedImage = argumentCaptor.getValue(); assertTrue(EncodedImage.isValid(encodedImage)); assertEquals(-1, encodedImage.getRotationAngle()); assertEquals(-1, encodedImage.getWidth()); assertEquals(-1, encodedImage.getHeight()); }
Example #4
Source File: AddImageTransformMetaDataProducer.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 6 votes |
@Override protected void onNewResultImpl( CloseableReference<PooledByteBuffer> newResult, boolean isLast) { final ImageFormat imageFormat = ImageFormatChecker.getImageFormat_WrapIOException(newResult.get().getStream()); mMetaDataBuilder.reset(); mMetaDataBuilder.setImageFormat(imageFormat); if (imageFormat == ImageFormat.JPEG && isLast) { mMetaDataBuilder.setRotationAngle(getRotationAngle(newResult)); Rect dimensions = JfifUtil.getDimensions(newResult.get().getStream()); if (dimensions != null) { mMetaDataBuilder.setWidth(dimensions.width()); mMetaDataBuilder.setHeight(dimensions.height()); } } mConsumer.onNewResult(Pair.create(newResult, mMetaDataBuilder.build()), isLast); }
Example #5
Source File: AddImageTransformMetaDataProducerTest.java From fresco with MIT License | 6 votes |
@Test public void testOnNewResultNotLast_DimensionsNotFound() { int rotationAngle = 180; int orientation = 1; when(ImageFormatChecker.getImageFormat_WrapIOException(any(InputStream.class))) .thenReturn(DefaultImageFormats.JPEG); when(JfifUtil.getAutoRotateAngleFromOrientation(orientation)).thenReturn(rotationAngle); when(JfifUtil.getOrientation(any(InputStream.class))).thenReturn(orientation); when(BitmapUtil.decodeDimensionsAndColorSpace(any(InputStream.class))) .thenReturn(new ImageMetaData(-1, -1, null)); mAddMetaDataConsumer.onNewResult(mIntermediateResult, Consumer.NO_FLAGS); ArgumentCaptor<EncodedImage> argumentCaptor = ArgumentCaptor.forClass(EncodedImage.class); verify(mConsumer).onNewResult(argumentCaptor.capture(), eq(Consumer.NO_FLAGS)); EncodedImage encodedImage = argumentCaptor.getValue(); assertTrue(EncodedImage.isValid(encodedImage)); assertEquals(-1, encodedImage.getRotationAngle()); assertEquals(-1, encodedImage.getWidth()); assertEquals(-1, encodedImage.getHeight()); }
Example #6
Source File: AddImageTransformMetaDataProducerTest.java From fresco with MIT License | 6 votes |
@Before public void setUp() { MockitoAnnotations.initMocks(this); PowerMockito.mockStatic(ImageFormatChecker.class, JfifUtil.class, BitmapUtil.class); mAddMetaDataProducer = new AddImageTransformMetaDataProducer(mInputProducer); mIntermediateResultBufferRef = CloseableReference.of(mock(PooledByteBuffer.class)); mFinalResultBufferRef = CloseableReference.of(mock(PooledByteBuffer.class)); mIntermediateResult = new EncodedImage(mIntermediateResultBufferRef); mFinalResult = new EncodedImage(mFinalResultBufferRef); mAddMetaDataConsumer = null; doAnswer( new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { mAddMetaDataConsumer = (Consumer<EncodedImage>) invocation.getArguments()[0]; return null; } }) .when(mInputProducer) .produceResults(any(Consumer.class), any(ProducerContext.class)); mAddMetaDataProducer.produceResults(mConsumer, mProducerContext); }
Example #7
Source File: ArtBitmapFactory.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 5 votes |
/** * Creates a bitmap from encoded JPEG bytes. Supports a partial JPEG image. * * @param pooledByteBufferRef the reference to the encoded bytes * @param length the number of encoded bytes in the buffer * @return the bitmap * @throws java.lang.OutOfMemoryError if the Bitmap cannot be allocated */ CloseableReference<Bitmap> decodeJPEGFromPooledByteBuffer( CloseableReference<PooledByteBuffer> pooledByteBufferRef, int length) { final PooledByteBuffer pooledByteBuffer = pooledByteBufferRef.get(); final InputStream jpegBufferInputStream = pooledByteBuffer.getStream(); jpegBufferInputStream.mark(Integer.MAX_VALUE); boolean isJpegComplete; try { jpegBufferInputStream.skip(length - 2); isJpegComplete = (jpegBufferInputStream.read() == JfifUtil.MARKER_FIRST_BYTE) && (jpegBufferInputStream.read() == JfifUtil.MARKER_EOI); jpegBufferInputStream.reset(); } catch (IOException ioe) { throw new RuntimeException(ioe); } InputStream jpegDataStream = jpegBufferInputStream; if (pooledByteBuffer.size() > length) { jpegDataStream = new LimitedInputStream(jpegDataStream, length); } if (!isJpegComplete) { jpegDataStream = new TailAppendingInputStream(jpegDataStream, EOI_TAIL); } return doDecodeStaticImage(jpegDataStream); }
Example #8
Source File: DalvikPurgeableDecoder.java From fresco with MIT License | 5 votes |
@VisibleForTesting public 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; }
Example #9
Source File: LocalExifThumbnailProducerTest.java From fresco with MIT License | 5 votes |
@Before public void setUp() throws IOException { MockitoAnnotations.initMocks(this); PowerMockito.mockStatic(JfifUtil.class, BitmapUtil.class); mTestExecutorService = new TestExecutorService(new FakeClock()); mTestLocalExifThumbnailProducer = new TestLocalExifThumbnailProducer( mTestExecutorService, mPooledByteBufferFactory, mContentResolver); when(mProducerContext.getImageRequest()).thenReturn(mImageRequest); when(mImageRequest.getSourceUri()).thenReturn(mUri); when(mProducerContext.getProducerListener()).thenReturn(mProducerListener); mThumbnailBytes = new byte[100]; when(mExifInterface.hasThumbnail()).thenReturn(true); when(mExifInterface.getThumbnail()).thenReturn(mThumbnailBytes); when(mPooledByteBufferFactory.newByteBuffer(mThumbnailBytes)).thenReturn(mThumbnailByteBuffer); when(mExifInterface.getAttribute(ExifInterface.TAG_ORIENTATION)) .thenReturn(Integer.toString(ORIENTATION)); when(JfifUtil.getAutoRotateAngleFromOrientation(ORIENTATION)).thenReturn(ANGLE); when(BitmapUtil.decodeDimensions(any(InputStream.class))).thenReturn(new Pair(WIDTH, HEIGHT)); doAnswer( new Answer() { @Override public Object answer(InvocationOnMock invocation) throws Throwable { mCapturedEncodedImage = EncodedImage.cloneOrNull((EncodedImage) invocation.getArguments()[0]); return null; } }) .when(mConsumer) .onNewResult(notNull(EncodedImage.class), anyInt()); }
Example #10
Source File: ArtDecoderTest.java From fresco with MIT License | 5 votes |
private void verifyDecodedBytes(boolean complete, int length) { byte[] decodedBytes = getDecodedBytes(); assertArrayEquals( Arrays.copyOfRange(mEncodedBytes, 0, length), Arrays.copyOfRange(decodedBytes, 0, length)); if (complete) { assertEquals(length, decodedBytes.length); } else { assertEquals(length + 2, decodedBytes.length); assertEquals((byte) JfifUtil.MARKER_FIRST_BYTE, decodedBytes[length]); assertEquals((byte) JfifUtil.MARKER_EOI, decodedBytes[length + 1]); } }
Example #11
Source File: ArtDecoderTest.java From fresco with MIT License | 5 votes |
private void jpegTestCase(boolean complete, int dataLength) { if (complete) { mEncodedBytes[dataLength - 2] = (byte) JfifUtil.MARKER_FIRST_BYTE; mEncodedBytes[dataLength - 1] = (byte) JfifUtil.MARKER_EOI; } CloseableReference<Bitmap> result = mArtDecoder.decodeJPEGFromEncodedImage( mEncodedImage, DEFAULT_BITMAP_CONFIG, null, dataLength); verifyDecodedFromStream(); verifyNoLeaks(); verifyDecodedBytes(complete, dataLength); closeAndVerifyClosed(result); }
Example #12
Source File: ProgressiveJpegParser.java From fresco with MIT License | 5 votes |
/** Not every marker is followed by associated segment */ private static boolean doesMarkerStartSegment(int markerSecondByte) { if (markerSecondByte == JfifUtil.MARKER_TEM) { return false; } if (markerSecondByte >= JfifUtil.MARKER_RST0 && markerSecondByte <= JfifUtil.MARKER_RST7) { return false; } return markerSecondByte != JfifUtil.MARKER_EOI && markerSecondByte != JfifUtil.MARKER_SOI; }
Example #13
Source File: LocalContentUriThumbnailFetchProducer.java From fresco with MIT License | 5 votes |
private static int getRotationAngle(String pathname) { if (pathname != null) { try { ExifInterface exif = new ExifInterface(pathname); return JfifUtil.getAutoRotateAngleFromOrientation( exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL)); } catch (IOException ioe) { FLog.e(TAG, ioe, "Unable to retrieve thumbnail rotation for %s", pathname); } } return 0; }
Example #14
Source File: EncodedImageTest.java From fresco with MIT License | 5 votes |
@Test public void testIsJpegCompleteAt_Complete() { byte[] encodedBytes = new byte[ENCODED_BYTES_LENGTH]; encodedBytes[ENCODED_BYTES_LENGTH - 2] = (byte) JfifUtil.MARKER_FIRST_BYTE; encodedBytes[ENCODED_BYTES_LENGTH - 1] = (byte) JfifUtil.MARKER_EOI; PooledByteBuffer buf = new TrivialPooledByteBuffer(encodedBytes); EncodedImage encodedImage = new EncodedImage(CloseableReference.of(buf)); encodedImage.setImageFormat(DefaultImageFormats.JPEG); assertTrue(encodedImage.isCompleteAt(ENCODED_BYTES_LENGTH)); }
Example #15
Source File: EncodedImage.java From fresco with MIT License | 5 votes |
/** Sets the encoded image meta data. */ public void parseMetaData() { final ImageFormat imageFormat = ImageFormatChecker.getImageFormat_WrapIOException(getInputStream()); mImageFormat = imageFormat; // BitmapUtil.decodeDimensions has a bug where it will return 100x100 for some WebPs even though // those are not its actual dimensions final Pair<Integer, Integer> dimensions; if (DefaultImageFormats.isWebpFormat(imageFormat)) { dimensions = readWebPImageSize(); } else { dimensions = readImageMetaData().getDimensions(); } if (imageFormat == DefaultImageFormats.JPEG && mRotationAngle == UNKNOWN_ROTATION_ANGLE) { // Load the JPEG rotation angle only if we have the dimensions if (dimensions != null) { mExifOrientation = JfifUtil.getOrientation(getInputStream()); mRotationAngle = JfifUtil.getAutoRotateAngleFromOrientation(mExifOrientation); } } else if (imageFormat == DefaultImageFormats.HEIF && mRotationAngle == UNKNOWN_ROTATION_ANGLE) { mExifOrientation = HeifExifUtil.getOrientation(getInputStream()); mRotationAngle = JfifUtil.getAutoRotateAngleFromOrientation(mExifOrientation); } else if (mRotationAngle == UNKNOWN_ROTATION_ANGLE) { mRotationAngle = 0; } }
Example #16
Source File: EncodedImage.java From fresco with MIT License | 5 votes |
/** * Returns true if the image is a JPEG or DNG and its data is already complete at the specified * length, false otherwise. */ public boolean isCompleteAt(int length) { if (mImageFormat != DefaultImageFormats.JPEG && mImageFormat != DefaultImageFormats.DNG) { 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); }
Example #17
Source File: ProgressiveJpegParser.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 5 votes |
/** * Not every marker is followed by associated segment */ private static boolean doesMarkerStartSegment(int markerSecondByte) { if (markerSecondByte == JfifUtil.MARKER_TEM) { return false; } if (markerSecondByte >= JfifUtil.MARKER_RST0 && markerSecondByte <= JfifUtil.MARKER_RST7) { return false; } return markerSecondByte != JfifUtil.MARKER_EOI && markerSecondByte != JfifUtil.MARKER_SOI; }
Example #18
Source File: LocalExifThumbnailProducer.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 5 votes |
private ImageTransformMetaData getImageTransformMetaData( PooledByteBuffer imageRef, ExifInterface exifInterface) { ImageTransformMetaData.Builder builder = ImageTransformMetaData.newBuilder() .setImageFormat(ImageFormat.JPEG); builder.setRotationAngle(getRotationAngle(exifInterface)); Rect dimensions = JfifUtil.getDimensions(imageRef.getStream()); if (dimensions != null) { builder.setWidth(dimensions.width()); builder.setHeight(dimensions.height()); } return builder.build(); }
Example #19
Source File: SecurePreferencesOld.java From FimiX8-RE with MIT License | 5 votes |
@Deprecated private static String generateAesKeyValue() throws NoSuchAlgorithmException { SecureRandom random = new SecureRandom(); KeyGenerator generator = KeyGenerator.getInstance(AES_KEY_ALG); try { generator.init(256, random); } catch (Exception e) { try { generator.init(JfifUtil.MARKER_SOFn, random); } catch (Exception e2) { generator.init(128, random); } } return encode(generator.generateKey().getEncoded()); }
Example #20
Source File: LocalExifThumbnailProducer.java From fresco with MIT License | 4 votes |
private int getRotationAngle(final ExifInterface exifInterface) { return JfifUtil.getAutoRotateAngleFromOrientation( Integer.parseInt(exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION))); }
Example #21
Source File: ProgressiveJpegParser.java From fresco with MIT License | 4 votes |
/** * Parses more data from inputStream. * * @param inputStream instance of buffered pooled byte buffer input stream */ private boolean doParseMoreData(final InputStream inputStream) { final int oldBestScanNumber = mBestScanNumber; try { int nextByte; while (mParserState != NOT_A_JPEG && (nextByte = inputStream.read()) != -1) { mBytesParsed++; if (mEndMarkerRead) { // There should be no more data after the EOI marker, just in case there is lets // bail out instead of trying to parse the unknown data mParserState = NOT_A_JPEG; mEndMarkerRead = false; return false; } switch (mParserState) { case READ_FIRST_JPEG_BYTE: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_SECOND_JPEG_BYTE; } else { mParserState = NOT_A_JPEG; } break; case READ_SECOND_JPEG_BYTE: if (nextByte == JfifUtil.MARKER_SOI) { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } else { mParserState = NOT_A_JPEG; } break; case READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_MARKER_SECOND_BYTE; } break; case READ_MARKER_SECOND_BYTE: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_MARKER_SECOND_BYTE; } else if (nextByte == JfifUtil.MARKER_ESCAPE_BYTE) { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } else if (nextByte == JfifUtil.MARKER_EOI) { mEndMarkerRead = true; newScanOrImageEndFound(mBytesParsed - 2); // There should be no data after the EOI marker, but in case there is, let's process // the next byte as a first marker byte. mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } else { if (nextByte == JfifUtil.MARKER_SOS) { newScanOrImageEndFound(mBytesParsed - 2); } if (doesMarkerStartSegment(nextByte)) { mParserState = READ_SIZE_FIRST_BYTE; } else { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } } break; case READ_SIZE_FIRST_BYTE: mParserState = READ_SIZE_SECOND_BYTE; break; case READ_SIZE_SECOND_BYTE: final int size = (mLastByteRead << 8) + nextByte; // We need to jump after the end of the segment - skip size-2 next bytes. // We might want to skip more data than is available to read, in which case we will // consume entire data in inputStream and exit this function before entering another // iteration of the loop. final int bytesToSkip = size - 2; StreamUtil.skip(inputStream, bytesToSkip); mBytesParsed += bytesToSkip; mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; break; case NOT_A_JPEG: default: Preconditions.checkState(false); } mLastByteRead = nextByte; } } catch (IOException ioe) { // does not happen, input stream returned by pooled byte buffer does not throw IOExceptions Throwables.propagate(ioe); } return mParserState != NOT_A_JPEG && mBestScanNumber != oldBestScanNumber; }
Example #22
Source File: ProgressiveJpegParser.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
/** * Parses more data from inputStream. * * @param inputStream instance of buffered pooled byte buffer input stream */ private boolean doParseMoreData(final InputStream inputStream) { final int oldBestScanNumber = mBestScanNumber; try { int nextByte; while (mParserState != NOT_A_JPEG && (nextByte = inputStream.read()) != -1) { mBytesParsed++; switch (mParserState) { case READ_FIRST_JPEG_BYTE: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_SECOND_JPEG_BYTE; } else { mParserState = NOT_A_JPEG; } break; case READ_SECOND_JPEG_BYTE: if (nextByte == JfifUtil.MARKER_SOI) { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } else { mParserState = NOT_A_JPEG; } break; case READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_MARKER_SECOND_BYTE; } break; case READ_MARKER_SECOND_BYTE: if (nextByte == JfifUtil.MARKER_FIRST_BYTE) { mParserState = READ_MARKER_SECOND_BYTE; } else if (nextByte == JfifUtil.MARKER_ESCAPE_BYTE) { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } else { if (nextByte == JfifUtil.MARKER_SOS || nextByte == JfifUtil.MARKER_EOI) { newScanOrImageEndFound(mBytesParsed - 2); } if (doesMarkerStartSegment(nextByte)) { mParserState = READ_SIZE_FIRST_BYTE; } else { mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; } } break; case READ_SIZE_FIRST_BYTE: mParserState = READ_SIZE_SECOND_BYTE; break; case READ_SIZE_SECOND_BYTE: final int size = (mLastByteRead << 8) + nextByte; // We need to jump after the end of the segment - skip size-2 next bytes. // We might want to skip more data than is available to read, in which case we will // consume entire data in inputStream and exit this function before entering another // iteration of the loop. final int bytesToSkip = size - 2; StreamUtil.skip(inputStream, bytesToSkip); mBytesParsed += bytesToSkip; mParserState = READ_MARKER_FIRST_BYTE_OR_ENTROPY_DATA; break; case NOT_A_JPEG: default: Preconditions.checkState(false); } mLastByteRead = nextByte; } } catch (IOException ioe) { // does not happen, input stream returned by pooled byte buffer does not throw IOExceptions Throwables.propagate(ioe); } return mParserState != NOT_A_JPEG && mBestScanNumber != oldBestScanNumber; }
Example #23
Source File: AddImageTransformMetaDataProducer.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
private int getRotationAngle(final CloseableReference<PooledByteBuffer> inputRef) { return JfifUtil.getAutoRotateAngleFromOrientation( JfifUtil.getOrientation(inputRef.get().getStream())); }
Example #24
Source File: LocalExifThumbnailProducer.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
private int getRotationAngle(final ExifInterface exifInterface) { return JfifUtil.getAutoRotateAngleFromOrientation( Integer.parseInt(exifInterface.getAttribute(ExifInterface.TAG_ORIENTATION))); }
Example #25
Source File: DalvikBitmapFactory.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
private static boolean endsWithEOI(final byte[] imageBytes, int length) { // TODO 5884402: remove dependency on JfifUtil return length >= 2 && imageBytes[length - 2] == (byte) JfifUtil.MARKER_FIRST_BYTE && imageBytes[length - 1] == (byte) JfifUtil.MARKER_EOI; }
Example #26
Source File: DalvikBitmapFactory.java From FanXin-based-HuanXin with GNU General Public License v2.0 | 4 votes |
private static void putEOI(byte[] imageBytes, int offset) { // TODO 5884402: remove dependency on JfifUtil imageBytes[offset] = (byte) JfifUtil.MARKER_FIRST_BYTE; imageBytes[offset + 1] = (byte) JfifUtil.MARKER_EOI; }
Example #27
Source File: KitKatPurgeableDecoder.java From fresco with MIT License | 4 votes |
private static void putEOI(byte[] imageBytes, int offset) { // TODO 5884402: remove dependency on JfifUtil imageBytes[offset] = (byte) JfifUtil.MARKER_FIRST_BYTE; imageBytes[offset + 1] = (byte) JfifUtil.MARKER_EOI; }