显示URL中的图像

时间:2014-04-19 18:42:03

标签: image url smalltalk

我需要从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

1 个答案:

答案 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