QA@IT

サイズ別に劣化のないビットマップ画像を作る方法を教えてください

3868 PV

例えば飲食店の外観の写真の上に「○月○日 NEW OPEN」といった文字を重ねた画像を作り、画像のサイズは大・中・小で使う場合、最初に大サイズで作って、そのあとで中サイズと小サイズに縮小するのが一般的なのでしょうか。

先日、ビットマップ画像を綺麗に拡大・縮小する方法を教えていただきました。
http://qa.atmarkit.co.jp/q/3640

3つのアルゴリズムを使って綺麗に拡大・縮小できることはわかったのですが、多少の劣化はあるのではないかと思います。
そこで今は、ベクター画像のように劣化しない方法を探しています。

例えばfotoliaというサイトでは、サイズ別に画像を販売しています。
http://jp.fotolia.com/id/60923504

販売するくらいですから、おそらくどのサイズも劣化のないものではないかなと予想しています。
ただその場合、どうやっているのかがわかりません。
fotoliaでどうやっているかというより、一般的にどうすればできるのかを教えていただきたいと思います。

ひとつ思いつくのは、写真を撮影する時に大・中・小で撮影されるように設定しておき、一度の撮影でそれぞれのサイズの写真が撮影される、といった方法です。ただその場合、各サイズの写真の上に同じように文字を重ねるのが難しい気がしています。文字を重ねるというのもひとつの例で、実際にはいろんな修飾がありますので、それを各サイズの写真で同じように行うのは難しい気がしています。

  • 自分でプログラムを組んでそのようなソフトを作るわけではなくて、市販またはフリーのソフトで自分の希望に合うようなことができるものを探しているのですよね。であれば、そのソフトを作った人に聞く話だと思うのですが。少なくともここで聞く話ではないかと・・・ -
  • ソフトを探しているのではなく、仕組みとかやり方を探しているんです。今回は当てはまりませんが、例えば「ベクター画像を使うと劣化しないよ」とかです。 -
  • それなら、ここで聞くより、Photoshop CC などのソフトを使って実際に自分でやって、結果を自分の目で見て判断してはいかがですか? Photoshop CC には体験版もあるようですし。 -
  • 理解されてないようなので一言。fotolia はサイズによる画質の劣化がなさそうとか言ってますけど、実際に見比べてみましたか? 実際に見比べてそう思ったとすると、見分けられなかったに過ぎないと思います。小さいサイズは大きいサイズよりピクセル数が少ない分間違いなく画質が劣っています。それが自分の目で見て分からないならそれでいいのでは? だから自分の目で見てはどうかと言ったのです。 -
  • fotolia の画像は大きさに関わらず劣化はないという思い込みが強いようで、Shu さんや mocha_rx8 さんが親切に回答されていますが、聞く耳持たないという感じがします。それなら、やはり、自分の目で見て判断するほかないと思います。 -

回答

いろいろな条件があるので、一般論を導き出すのは難しいと思いますので私見となりますが回答させていただきます。
条件というのは作業者のスキル・用意できる元画像の種類・作業にかけられる時間・使えるツール、様々です。
デジタルである以上再加工による劣化は免れないと思いますし、結局は最終判断される人が許容できるかどうかという話になると思います。

例えば飲食店の外観の写真の上に「○月○日 NEW OPEN」といった文字を重ねた画像を作り、画像のサイズは大・中・小で使う場合、最初に大サイズで作って、そのあとで中サイズと小サイズに縮小するのが一般的なのでしょうか。

合成が後で行えるのであれば、写真だけ大・中・小のサイズに変更して、各サイズにそれぞれ文字を重ねるケースが多いと思います。文字をビットマップ画像に埋め込んだ後で拡大縮小するとどうしてもぼやけた感じになったり欠けた感じになったりしますので。
その後、各サイズごとに微調整を行う場合もあります。

3つのアルゴリズムを使って綺麗に拡大・縮小できることはわかったのですが、多少の劣化はあるのではないかと思います。
そこで今は、ベクター画像のように劣化しない方法を探しています。

例えば、デジカメでいえば写真をとってビットマップ画像化する場合(よくJPG形式で保存されますね)、その時にカメラで用意されたアルゴリズムを使って保存を行います(縮小もこのときでしょう。lanczosが多いですかね)。またJPG形式というのは一般に保存しただけで劣化する圧縮形式(元に戻せないので不可逆圧縮といいます)をとっています。この時点で劣化は発生しています。

なお、ベクター画像は劣化しないのではなくそのサイズで直線・曲線を描き直しているにすぎません。

販売するくらいですから、おそらくどのサイズも劣化のないものではないかなと予想しています。

そのサイトも販売はJPG形式の様です。一応JPG形式も非圧縮にすれば劣化なしに保存はできるとおもいますが、このサイトがどうしているかはわかりません。

デジカメの話に戻りますが、デジカメで「元のまま」の保存形式といえばRAW形式というのがあります。これはカメラが撮影した情報をそのまま保存する形式です。デジカメでの撮影ではRAW形式で保存しておき、調整後各サイズにリサイズしているのではないでしょうか。そのサイトの各サイズもそのように用意していると思います。
ちなみにRAW形式というのはカメラ依存なのでRAW形式で販売されていることはないと思います。

RAW形式が用意できない場合(デジカメが対応していない・写真ではないなど)、可逆な形式(PNG,TIFFなど)で大きなサイズで画像を残しておくしかないとおもいます。
基本的に拡大という作業は拡大するにあたって存在しない情報を作り出すことになりますので、縮小に比べて無理が出やすいと思います。

話があまりまとまってませんが、参考までに。

編集 履歴 (0)
  • 回答ありがとうございました。とても勉強になりました。 -

あくまで一例ですが、私なら挿入したいロゴなどをSVG形式(ベクター)で作成しておき、
必要なサイズにエクスポートしてからJPGなどに合成します。
SVG形式のファイルはInkscapeなどで作成できます。

挿入したいのが単純なテキストだけならImageMagickだけで合成可能です。

編集 履歴 (0)
  • 回答ありがとうございます。なるほどです。勉強になりました。 -
3つのアルゴリズムを使って綺麗に拡大・縮小できることはわかったのですが、多少の劣化はあるのではないかと思います。
そこで今は、ベクター画像のように劣化しない方法を探しています。

ピクセル毎の情報により表現しているビットマップでは
拡大はある程度可能かもしれませんが縮小は絶対無理ですね。

縦横を50%に縮小することを考えた場合、
そこに含まれるピクセル数が縦横それぞれ半分になってしまう
ということになるのでそれが劣化しないということは

例えば16x16ピクセルで表現していたものが8x8ピクセルで表現
出来るということになってしまいます。これが可能ということに
なってしまうと極限まで縮小した1x1=1ピクセルですべての画像を
表現出来ることになってしまいますよ。

劣化が気にならない(=多少の劣化はある)という方法しかありえません。

ベクター画像というのはピクセル単位の情報を持っているわけではないので
拡大縮小を綺麗に行うことは出来ます。ただこれも結局表示時にはピクセル
単位の表示となってしまうので拡大したものと縮小したものを比較した場合に
多少の劣化は発生します。

編集 履歴 (0)
  • 回答ありがとうございます。仰る通り、ピクセルで表現する以上は原理的に無理かもしれないと思っていました。だけど何かないかなと思っています。ピクセルにする前に何かするといったような。そしてfotoliaではこうしているんだろうという予測を立てたいですね。 -
  • fotoliaでも単純に画像サイズが小さくなればなるほど画質も劣化してるでしょう。サイズが小さくなるほど価格が下がる点からもわかると思いますが。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。