显示来自URL的图像(Display an image from URL)

2019-10-19 23:02发布

我需要从一个视图中的URL和显示获得的图像。 在Cincom的Smalltalk中如何才能做到这一点? 例如,我有这个图片的URL:

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

Answer 1:

该“byteSource”方法返回一个已经定位到文件末尾流。 当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


文章来源: Display an image from URL