LoginSignup
8
5

More than 5 years have passed since last update.

C++で画像を作る用のライブラリサーベイ

Last updated at Posted at 2018-08-18

概要

C++でグラフや、スペクトログラムや、美麗な画像とかを作りたかったので、サーベイしました。

対象読者

  • C++で美麗な画像を作りたい方

結論

CImgを使えばOK
※ 実際に使ってみたら変わるかもしれませんが

成果物

さっそく美麗なスペクトログラムを作りました。導入が簡単ではかどりました。
test.png

要件

  • 必ずやりたいこと
    • ピクセル単位で画像をいじれる
    • pngかbmpで出力できる
  • できればやりたいこと
    • テキスト描画
    • 各種美麗なエフェクト
    • アンチエイリアスのかかった美麗な線を引く
    • 簡単にグラフを描ける
  • 導入が楽
  • ライセンスはサーバー側で使った場合に、ソースコードを公開しなくても良いやつ

サーベイ

OpenCV

導入がめんどくさそうなのでなしです。

cairo

ホームページがダサくてgithubがメインになっていないので、古そう。

Ion

github star 1325
かっこよさそうですが、今回の要件に必要ない依存が増えそう。

libigl

http://libigl.github.io/libigl/
https://github.com/libigl/libigl
github star 1257

3Dのメッシュとかをいじる系で、今回の要件にあわなそう。

PANDA3D

http://www.panda3d.org/
3D系。要件にあわなそう。

partio

https://github.com/wdas/partio
A library for particle IO and manipulation。要件にあわなそう。

libgd

https://github.com/libgd/libgd
github star 367

なにかで2011年頃に使った記憶がある。なんだっけ?
C++かRubyで使った記憶がある。
独自Captchaだっけ?

使用感は普通
https://libgd.github.io/manuals/2.2.5/files/preamble-txt.html

CImg

https://github.com/dtschump/CImg
http://cimg.eu/
github star 537

CImg is self-contained, thread-safe and highly portable. It fully works on different operating systems (Unix,Windows,MacOS X,*BSD,...) and is compatible with various C++ compilers (Visual C++,g++,clang++,icc,...).

導入のしやすさでは良さそう。

使用感
http://cimg.eu/reference/group__cimg__tutorial.html
表示機能も内包しているみたい。

http://cimg.eu/CImg_slides.pdf
できることが紹介されているスライド。
pngにも対応しているらしい。

Generic Image Library

https://www.boost.org/doc/libs/1_56_0/libs/gil/doc/index.html
boostに含まれているのか。
CImgより優れたポイントがないなら、調べる必要なさそう。

Magick++

http://www.imagemagick.org/script/magick++.php
CImgより優れたポイントがないなら、調べる必要なさそう。

まとめ

CImgが以下の点で良さそう。

  • 導入しやすい
  • 最低限やりたいことを満たしている
  • 線とかテキストとかも描ける
8
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
5