web-dev-qa-db-ja.com

SVGで埋め込まれたラスター画像をリサンプリングする

高解像度のPNG画像が埋め込まれたSVGファイルのバッチがあります。 PNGファイルのサイズはかなり小さくなっています(transformmatrixなどを使用)。 リサンプル これらの埋め込み画像を所定の位置に配置するための最良の方法は何ですか?目標は、より小さく、より高速にロードされるSVGファイルを取得することです。

いくつかの用語を明確にするためだけに(強調を追加):

リサンプリングは画像の総ピクセル数を変更します。

.。

画像のサイズをサイズ変更し、リサンプリングしない場合は、データ量を変更せずに画像のサイズを変更します。

明らかに、私は現在画像のサイズを変更しているだけです。

ImageMagickを使用して自動化しようと試みましたが、画像の比率を維持することは完全に簡単ではありません。簡単なInkscapeハックはありますか?または私が見落としている何か他のもの?

4
zourtney

Inkscapeには実際にはリサンプルオプションがあります( mayImageMagick の一部です)。これらのオプションは、Extensions -> Rasterメニューから利用できます。

画像内のアイテムをリサンプリングするには:

  1. Extensions -> Images -> Embed Images...を介して画像を埋め込みます
  2. 埋め込まれた画像を選択します
  3. Extensions -> Raster -> Resampleを介してリサンプリング

enter image description here

  1. WidthHeightの値を許容可能な最小値に減らします
  2. ApplyおよびClose

この方法は、オーサリングプロセス中にうまく機能します。私はまだこれを自動化する方法に取り組んでおり、良い方法を見つけたらこの投稿を更新します。

5
zourtney

ImageMagickが必要な方法で機能しなかった場合は、GraphicsMagickを試してください(ホームページ ここ )。はい、それはImageMagickのフォークですが、機能が不完全または誤って実装されているためにImageMagickに頭をぶつけたことがありますが、同じ機能が魅力のように機能することがわかりました(そして論理的にGraphicsMagickで一貫性のある)。

はい、これはGraphicsMagickを試す方向の事例証拠ですが、一見の価値があると思います。 (一般的に、ImageMagickは堅実なソフトウェアだと思います。GraphicsMagickの方が信頼性が高いので、それに固執する場合もあります。)

2
IllvilJa