- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试打开 JPEG 图像的远程流并将其转换为位图对象:
BitmapFactory.decodeStream(
new URL("http://some.url.to/source/image.jpg")
.openStream());
解码器返回 null,在日志中我收到以下消息:
DEBUG/skia(xxxx): --- decoder->decode returned false
注意:
1. 内容长度非零且内容类型为image/jpeg
2. 当我在浏览器中打开 URL 时,我可以看到图像。
我在这里缺少什么?
请帮忙。谢谢。
最佳答案
android bug n°6066中提供的解决方案包括覆盖标准 FilterInputStream,然后将其发送到 BitmapFactory。
static class FlushedInputStream extends FilterInputStream {
public FlushedInputStream(InputStream inputStream) {
super(inputStream);
}
@Override
public long skip(long n) throws IOException {
long totalBytesSkipped = 0L;
while (totalBytesSkipped < n) {
long bytesSkipped = in.skip(n - totalBytesSkipped);
if (bytesSkipped == 0L) {
int byteValue = read();
if (byteValue < 0) {
break; // we reached EOF
} else {
bytesSkipped = 1; // we read one byte
}
}
totalBytesSkipped += bytesSkipped;
}
return totalBytesSkipped;
}
}
然后使用decodeStream函数:
Bitmap bitmap = BitmapFactory.decodeStream(new FlushedInputStream(inputStream));
我发现的另一个解决方案是简单地将 BufferedInputStream 提供给 BitmapFactory:
Bitmap bitmap = BitmapFactory.decodeStream(new BufferedInputStream(inputStream));
这两个解决方案应该可以解决问题。
更多信息可以在错误报告评论中找到:android bug no.6066
关于android - Skia 解码器无法解码远程流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2787015/
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我正在 Windows 上构建 Skia,关注 this link . 对于 Windows x64,构建非常顺利。但不适用于 32 位。 1) 我尝试指定 target_cpu = "x86"而不是
我在使用 skia measureText() 函数测量文本时遇到问题。返回值不准确。 SkPaint *skPaint = new SkPaint(); SkTypeface* myFont = S
我有一个 draw(SkCanvas* canvas) 函数。 在 main() 中我写: SkBitmap myBitmap; myBitmap.allocN32Pixels(640, 480);
我正在尝试打开 JPEG 图像的远程流并将其转换为位图对象: BitmapFactory.decodeStream( new URL("http://some.url.to/source/im
你好, 我目前正在研究Android如何解码和图像文件。当我检查代码时,它似乎在调用 SKIA 库。但是,如何根据源码知道android/skia支持的图片文件格式是什么? 我不是编程专家,所以我还在
本页http://source.android.com/devices/graphics.html说: Prior to Android 3.0, Canvas used the Skia 2D dr
我尝试按照 https://skia.org/user/build 中的建议在 Windows 上编译skia 1> bin/gn gen out/Static --args='is_official
我想弄清楚如何让 Skia 从路径几何中生成网格。我查了 SkPath::dump , SkPath::writeToMemory , SkPath::serialize ,但是它们似乎都输出路径内容
我正在尝试使用 Xamarin.forms 中的 SkiaSharp 在图像上绘制一些多边形。图片是从服务器下载的,然后缓存在后台。所以我宁愿不操纵图像本身,而是绘制一个新 Canvas 并将其放置在
我正在尝试使用 Skia Windows 上的图形库需要 building it from source .但是,当我运行构建命令时: ninja -C out/Static 我得到这个构建错误: "
我正在尝试使用 Linux 构建 SKIA 库: https://code.google.com/p/skia/ 我已成功运行 ./gyp_skia 后跟 make 命令。 您经常在make 之后运行
我正在处理一个必须在位图上快速绘制文本的应用程序。我已经对渲染过程的内存使用进行了相当多的优化,但我仍然希望该过程尽可能快,那时我了解到 Skia 库,有人说它可以提供比原生 Android canv
我将 Skia 用于我的示例程序之一。我有一个 Canvas ,我在其中使用 font_size 30 编写文本,这是代码片段。 string = "Test String"; SkString t
这是我的一个与远程浏览器隔离相关的实验项目。我正在尝试拦截 Skia在正在运行的 Chromium 实例中绘制命令,然后通过 CanvasKit 在客户端的不同浏览器实例中重放它们,Skia 的 We
因此,我从 Google SIgn-in api 下载个人资料图片,并将其保存到隐藏文件中。问题是,当我尝试检索它时,它会抛出:D/skia: --- 无法创建带有消息“未实现”的图像解码器。但是,当
为什么 Skia包括 Forth interpreter ? 最佳答案 Forth 解释器包含最初是一种调用 Skia 的迷你脚本语言。 迈克·里德,software engineer and man
我想使用 SkiaSharp 绘制富文本,例如 iOS 的属性文本或 Xamarin.Forms 的 FormattedString,但我找不到方法。 我找到了 DrawText 方法,但它用于使用一
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在设计一个显示一些图像的 Activity 。下面的代码获取图像文件并将它们放入屏幕。 for(int i=0;idecode returned false 06-2
我是一名优秀的程序员,十分优秀!