Java 类com.bumptech.glide.load.resource.bitmap.ImageHeaderParser 实例源码
项目:GlidePlus
文件:ImageWrapperResourceDecoder.java
private ImageWrapper decodeStream(ImageVideoWrapper source, int width, int height, byte[] bytes)
throws IOException {
InputStream bis = streamFactory.build(source.getStream(), bytes);
bis.mark(MARK_LIMIT_BYTES);
ImageHeaderParser.ImageType type = parser.parse(bis);
bis.reset();
ImageWrapper result = null;
if (type == ImageHeaderParser.ImageType.GIF) {
result = decodeGifWrapper(bis, width, height);
}
// Decoding the gif may fail even if the type matches.
if (result == null) {
// We can only reset the buffered InputStream, so to start from the beginning of the stream, we need to
// pass in a new source containing the buffered stream rather than the original stream.
ImageVideoWrapper forBitmapDecoder = new ImageVideoWrapper(bis, source.getFileDescriptor());
result = decodeBitmapWrapper(forBitmapDecoder, width, height);
}
return result;
}
项目:GlidePlus
文件:ImageWrapperResourceDecoder.java
public ImageHeaderParser.ImageType parse(InputStream is) throws IOException {
return new ImageHeaderParser(is).getType();
}