我需要从URL获取图像并在视图中显示。怎么能在Cincom Smalltalk中做到这一点? 例如,我有这个图片网址:
http://news.bbcimg.co.uk/media/images/64001000/jpg/_64001280_63976026.jpg
我希望显示图像。我试试:
|req content reader|
req := HttpRequest
get:'http://news.bbcimg.co.uk/media/images/64001000/jpg/_64001280_63976026.jpg' asURI.
content:=req execute.
reader := JPEGImageReader new.
reader from: content byteSource.
但它不起作用。 Cincom Smalltalk说:
预期的图像不完整或部分损坏的JFIF标记。
执行时:JPEGImageReader>>parseFirstMarker
。
答案 0 :(得分:2)
" byteSource" method返回已经定位到文件末尾的流。当JPEG阅读器开始阅读时,我会结束并中止。
你真的不应该使用byteSource方法。如果压缩了URI的内容,则无法正确解压缩它们。你应该获取byteContents并在该结果上打开一个readStream,如下所示:
|req content reader image |
req := HttpRequest
get:'http://news.bbcimg.co.uk/media/images/64001000/jpg/_64001280_63976026.jpg' asURI.
content:=req execute.
reader := JPEGImageReader new.
image := (reader from: content byteContents readStream) image