

swift3でalamofireimageを利用してPHPで生成した画像(jpg)を取得・表示したい。

前提として  
・alamofireimage自体は正常に稼働しています。  
・サーバー上の静的なjpgファイルの場合、問題なく取得できます。  
・PHP出力画像もブラウザから確認すると正常に生成されています。

以下がトライしている箇所のコードになります。  
swift側の処理

[code]

    //ViewControllerの
    //override func viewDidLoad() {の中に記述しています。
    //(1)JPG画像への直リンクの場合はうまくいきます。
    self.imgURL = "https://.../path/sample.jpg"
    //(2)PHP(生成画像)へのリンクの場合、画像が取得できません。
    self.imgURL = "https://.../path/output.php?param=sample"
    let ImageURL = NSURL(string: self.imgURL)!
    let placeholderImage = UIImage(named: "myplaceholder.png")!
    self.mapImageView.af_setImage(withURL: ImageURL as URL , placeholderImage: placeholderImage)
    
[/code]

PHP側の処理

[code]

    #PHPにて動的にJPG画像を出力
    #※今回はSVGデータからJPGを生成しています。
    $image = new Imagick();
    $image->readImageBlob($SVGData);
    $image->setImageFormat("jpg");
    header('Content-Type: image/'.$image->getImageFormat());
    echo $image;
    
[/code]

どのようにすればPHPから出力した画像を(alamofireimageで)取得することができるのでしょうか。  
アドバイスを何卒、よろしくお願いいたします。


CC BY-SA 3.0
2017-04-28T00:03:19.297
34336
2021-02-09T05:04:20.533
2020-09-02T02:32:24.603
3060
22684
question
swift php swift3 画像 alamofire
swift3・alamofireimageでPHPから出力したイメージを表示したい


alamofireimageが、どのheaderを処理で利用しているか判らないのですが、Content-Typeが

[code]

    $image->setImageFormat("jpg");
    header('Content-Type: image/'.$image->getImageFormat());
    
[/code]

の実行で image/jpg 出力になっていると思われます。jpg画像だけの出力なら

[code]

    header('Content-Type: image/jpeg');
    
[/code]

固定で出力がよいかと。  
必要ならば 画像名、画像サイズをheaderで渡してあげましょう。

[code]

        header('Content-Disposition: attachment; filename="img name"');
        header('Content-Length: ' . $image->getImageSize());
    
[/code]


CC BY-SA 3.0
2017-05-01T01:32:08.923
34395
2017-05-01T05:56:56.783
2017-05-01T05:56:56.783
22793
22793
34336
answer