質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

imagick

IMagickは、PHPからImageMagickを使う場合に使用する拡張インターフェースです。PHPで簡単にImageMagickの機能が利用できます。

受付中

ImageMagick × PHPを使ったSVG⇒PNG変換の際に、エラーが発生してしまう

HirokiKikuchi
HirokiKikuchi

総合スコア8

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

imagick

IMagickは、PHPからImageMagickを使う場合に使用する拡張インターフェースです。PHPで簡単にImageMagickの機能が利用できます。

0回答

0評価

0クリップ

1973閲覧

投稿2018/09/28 12:55

はじめて質問させていただきます。
キクチヒロキと申します。
先輩エンジニア様にヒントをいただきたく思い、質問させていただきます。

前提・実現したいこと

●前提/ツールver情報
PHP Version 7.1.13 | サーバー CPI | ImageMagick 6.9.9-28 | imagick module version 3.4.3RC |
※対応フォーマットに、SVG, SVGZ,PNGなどは確認済

●実現したいこと
・ブラウザ上で、SVG⇒PNG(透過png)に変換
・SVGの形式を問わない形で変換を実現

発生している問題・エラーメッセージ

Fatal error: Uncaught ImagickException: no decode delegate for this image format `' @ error/******/******/ in /usr/******/imagick_test.php:11

該当のソースコード

php

<?php ini_set('display_errors', 1); $svg = 'hogehoge.svg'; $svg = file_get_contents( $svg ); $png = 'hogehoge.png'; $im = new Imagick(); $im->newImage(300, 300, new ImagickPixel('transparent')); $im->setImageFormat('png'); $im->setBackgroundColor('transparent'); $im->readImageBlob($svg); $im->writeImage($png); $im= new Imagick(realpath($png)); $im->setImageFormat('png24'); header("Content-Type: image/png"); echo $im; //後処理 $im->clear(); $im->destroy(); ?>

試したこと

エラーを読んだところ、SVGがうまく読み込めていないようなので、SVGの書き出し形式をイラレで変更(ver1.1 CSS/プレゼンテーション属性)を付与した状態で、保存し直し、SVGに変更を掛けるとうまくいく

しかし、対象のSVGがかなりの数があるので、出来ればSVGのverなどを問わない形でPNG変換を実現したい。


同一のご経験や、ご先輩などのアドバイスを頂戴出来ればと思います。
何卒よろしくお願いいたします。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

ImageMagick

ImageMagickとは、画像の表示や操作を行うオープンソースのソフトウェアです。プログラムはCで書かれており、GIFやJPEG、PDFなど画像ファイルフォーマット100種類以上に対応しています。

imagick

IMagickは、PHPからImageMagickを使う場合に使用する拡張インターフェースです。PHPで簡単にImageMagickの機能が利用できます。