2014-04-19 116 views
1

我需要從URL中獲取圖像並在視圖中顯示。在Cincom Smalltalk中如何做到這一點? 例如,我有這個圖片的URL:從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

回答

2

「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