Giriş
Şu satırı dahil ederiz.
rgb8_image_t Sınıfı
dimensions metodu
Şöyle yaparız
Şöyle yaparız
width metodu
Şöyle yaparız
Free Style Metodlar
copy_pixels metodu
img1'in belli bir alanını out_img nesnesin kopyalamak için şöyle yaparız. vie() çağrısı ile stream aldığımızı düşünelim. subimage_view ile hedef resmin hangi alanına kopyalayacağımızı belirtiriz.
Şöyle yaparız
Şöyle yaparız
Örnek
Şöyle yaparız.
Şöyle yaparız
Örnek
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız. Ben bir çeşit stream döndürüyor gibi düşünüyorum.
Şu satırı dahil ederiz.
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/png_dynamic_io.hpp>
Şu satırı dahil ederiz.using namespace boost::gil;
png ile çalışabilmek için LibPng yüklü olmalıdır. LibPng için sanırım şu tanımlamaları yapmak gerekiyor.#define png_infopp_NULL (png_infopp)NULL
#define int_p_NULL (int*)NULL
rgb8_image_t Sınıfı
dimensions metodu
Şöyle yaparız
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/png_io.hpp>
namespace gil = boost::gil;
using Img = gil::rgba8_image_t;
using Pix = Img::value_type;
Img a, b;
gil::png_read_image("/tmp/a.png", a);
gil::png_read_image("/tmp/b.png", b);
assert(a.dimensions() == b.dimensions());
Img c(a.dimensions());
height metoduŞöyle yaparız
gil::rgb8_image_t img = ...;
int width = static_cast<int> (img.height());
Şöyle yaparız
gil::rgb8_image_t img = ...;
int width = static_cast<int> (img.width());
Free Style Metodlar
copy_pixels metodu
img1'in belli bir alanını out_img nesnesin kopyalamak için şöyle yaparız. vie() çağrısı ile stream aldığımızı düşünelim. subimage_view ile hedef resmin hangi alanına kopyalayacağımızı belirtiriz.
rgb8_image_t out_img(512, 512);
rgb8_image_t img1;
png_read_image("img1.png", img1);//Code for loading img1
copy_pixels(view(img1), subimage_view(view(out_img), 0, 0, 50, 50));
interleaved_view metoduŞöyle yaparız
gil::rgb8_image_t img = ...;
int _width = static_cast<int>(img.width());
int _height = static_cast<int>(img.height());
typedef decltype(img)::value_type pixel;
auto pixeldata = new pixel[_width * _height];
auto dstView = gil::interleaved_view(
img.width(), img.height(), pixeldata, img.width() * sizeof pixel);
jpeg_read_and_convert_imageŞöyle yaparız
std::str path = ...;
gil::rgb8_image_t img;
gil::jpeg_read_and_convert_image (path, img);
png_read_and_convert_image metodu
Şöyle yaparızstd::str path = ...;
gil::rgb8_image_t img;
gil::png_read_and_convert_image (path, img);
png_read_image metoduÖrnek
Şöyle yaparız.
rgb8_image_t img1;
png_read_image("img1.png", img1);//Code for loading img1
ÖrnekŞöyle yaparız
#include <boost/gil/gil_all.hpp>
#include <boost/gil/extension/io/png_io.hpp>
namespace gil = boost::gil;
using Img = gil::rgba8_image_t;
using Pix = Img::value_type;
Img a, b;
gil::png_read_image("/tmp/a.png", a);
gil::png_read_image("/tmp/b.png", b);
assert(a.dimensions() == b.dimensions());
Img c(a.dimensions());
png_write_view metoduÖrnek
Şöyle yaparız.
rgb8_image_t out_img(512, 512);
...
png_write_view("output.png", const_view(out_img));
ÖrnekŞöyle yaparız.
using Img = gil::rgba8_image_t;
Img c = ...;
gil::png_write_view("/tmp/c.png", view(c));
transform_pixels metoduŞöyle yaparız.
using Img = gil::rgba8_image_t;
using Pix = Img::value_type;
Img a, b;
gil::png_read_image("/tmp/a.png", a);
gil::png_read_image("/tmp/b.png", b);
assert(a.dimensions() == b.dimensions());
Img c(a.dimensions());
gil::transform_pixels(view(a), view(b), view(c),
[](gil::rgba8_ref_t a, gil::rgba8_ref_t b) {
gil::red_t R;
gil::green_t G;
gil::blue_t B;
gil::alpha_t A;
return Pix (
get_color(a, R) + get_color(b, R),
get_color(a, G) + get_color(b, G),
get_color(a, B) + get_color(b, B),
get_color(a, A) + get_color(b, A)
);
});
subimage_view metodu
Şöyle yaparız.rgb8_image_t out_img(512, 512);
...
subimage_view(view(out_img), 0, 0, 50, 50);
view metoduŞöyle yaparız. Ben bir çeşit stream döndürüyor gibi düşünüyorum.
gil::rgb8_image_t img;
auto srcView = gil::view (img);
Hiç yorum yok:
Yorum Gönder