2017-07-18 59 views

回答

0

大多數HTTP客戶端API將有一個寫回調方法。例如CURLOPT_WRITEFUNCTION

您將負責實施方法以將流數據收集到緩衝區中,並在成功完成流時將緩衝區傳遞給ImageMagick。

如果數據流是一種圖像格式(即GIFJPEGPNG,& TC),你將調用MagickReadImageBlob方法。

MagickBooleanType MagickReadImageBlob(MagickWand *wand, 
    const void *blob,const size_t length) 

現在,如果數據流是圖像數據(RGBA像素),那麼你就可以利用MagickImportImagePixels方法。

MagickBooleanType MagickImportImagePixels(MagickWand *wand, 
    const ssize_t x,const ssize_t y,const size_t columns, 
    const size_t rows,const char *map,const StorageType storage, 
    const void *pixels) 

但要記住!如果是這種情況,您還需要負責在之前知道圖像大小(寬度+高度),數據存儲類型(字符/浮點/長度)和通道映射(RGBA/BGRA/CMYK/HSL)導入數據。

+0

我的版本是osx上的7.0.6-1 – zun

+0

正式的例子使用這個:'MagickCoreGenesis(* argv,MagickTrue);'給最初的魔法環境。 * argv是圖像文件路徑。問題是當我轉換http sream數據時,我如何初始化環境? – zun

+0

'* argv'應該與入口'main'函數的值相同。需要確保可執行文件可訪問,並設置客戶端名稱和路徑。與圖像文件路徑或數據流無關。 – emcconville

相關問題