Top Banner
ImageMagick++ 임임임 ( [email protected] ) 2012.01.13
24

Image magick++

Aug 12, 2015

Download

Technology

Yubin Lim
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Image magick++

ImageMagick++ 임유빈 ( [email protected] )

2012.01.13

Page 2: Image magick++

ImageMagickImageMagick++

Page 3: Image magick++

RedHat...$ yum install ImageMagick-devel

Ubuntu...$ apt-get install libmagick++-dev

Installation

Page 4: Image magick++

Compiling

$ c++ -o exam exam.cpp `Magick++-config --cppflags --cxxflags --ldflags --libs`

Page 5: Image magick++

CMake

CMakeLists.txt 1/2

find_package(ImageMagick)find_package(ImageMagick COMPONENTS Magick++ convert)

include_directories(${ImageMagick_INCLUDE_DIRS})set(LIBS ${ImageMagick_LIBRARIES})

Page 6: Image magick++

CMake

CMakeLists.txt 2/2

add_executable(exam exam.cpp)target_link_libraries(exam ${LIBS})

Page 7: Image magick++

#include <Magick++.h>#include <list>

using namespace Magick;using namespace std;

int main(int argc, char* argv[] ){

InitializeMagick(*argv); // for Windows only.}

Page 8: Image magick++

Image class

Single Frame ManipulationRef: http://imagemagick.org/Magick++/Image.html

Image

Page 9: Image magick++

try {

Image img1("local.gif");

Image img2(Geometry("100x100"),

32, "GIF");

Image img3;

img3.read("local.jpg");

} catch (Exception& e) {cerr << e.what() << endl;

}

Page 10: Image magick++

Image manipulation methods...

Filters...addNoise, blur, charcoal, ...

Editors...

erase, floodFillColor, zoom, ...

Adjustments...level, levelChannel, ...

Page 11: Image magick++

Image read & write

Image img; Blob blob;img.read("mypic.jpg");

// Manipulations...

img.magick("PNG");

img.write("mypic.png");img.write(&blob);

Page 12: Image magick++

Drawable classes...

Providing i/f for image or text for Image::draw()Ref: http://imagemagick.org/Magick++/Drawable.html

Image

Drawable

Drawable

Page 13: Image magick++

Image img(Geometry(500,500), Color("White"));

img.draw(DrawableCircle(100, 100, 10, 10));

img.draw(DrawableRectangle(200, 200,

10, 10));

img.display();

Page 14: Image magick++

Using STL library!

Page 15: Image magick++

Image img(Geometry(500,500), Color("White"));

std::list<Drawable> dl;

dl.push_back(DrawableStrokeColor("Red"));dl.push_back(DrawableStrokeWidth(5));dl.push_back(DrawableFillColor("Green"));

dl.push_back(DrawableCircle(100, 100,10, 10));

img.draw(dl);img.display();

Page 16: Image magick++

Text Rendering...

Page 17: Image magick++

Korean fonts installation...

Local$ mkdir ~/.fonts$ cp *.ttf ~/.fonts

$ cd ~/.fonts$ fc-cache

Page 18: Image magick++

Korean fonts installation...

Global$ su -$ cd /usr/share/fonts$ mkdir my_ttf ; cd my_ttf$ cp ~/.fonts/*.ttf .$ cd my_ttf$ fc-cache

Page 19: Image magick++

Image img(Geometry(500,500), Color("White"));std::list<Drawable> dl;

dl.push_back(DrawableFont(" 맑은고딕 ",NormalStyle, 800, NormalStretch));

dl.push_back(DrawableText(0, 0,"세상아 , 안녕 ?", "UTF-8"));

img.draw(dl);img.display();

Page 20: Image magick++

DrawableFont(const std::string& family,

StyleType style,

unsigned int weight,StretchType stretch)

AnyStyle

NormalStyle

ItalicStyle

ObliqueStyle

weight:

100, 200, 300

~ 900

Normal: 400

AnyStretch

NormalStretch

UltraCondensedStr

etch ...

Page 21: Image magick++
Page 22: Image magick++
Page 23: Image magick++
Page 24: Image magick++

Thank you...