我想知道是否有任何C ++或C库允许通过坐标获取png-image。例如: 我已经打开了png文件,我只需要从
开始获取它的parfx = 5
y = 5
w = 10
h = 10
and so on
那么什么库允许进行这种操作? 先谢谢
答案 0 :(得分:4)
使用Magic++:
#include <Magick++.h>
using namespace Magick;
void main()
{
Image image;
image.read( "in.png" );
// Crop the image to specified size (width, height, xOffset, yOffset)
image.crop( Geometry(10, 10, 5, 5) );
// Write the image to a file
image.write( "out.png" );
}
答案 1 :(得分:2)
大多数图书馆都会为您做这件事。在OpenCV中:
接头:
#include <cv.h>
#include <highgui.h>
代码:
IplImage *im = cvLoadImage("input.png");
cvSetImageROI(im, cvRect(x, y, w, h));
cvShowImage("output.png", im);
答案 2 :(得分:1)
像@misha所说,大多数图书馆都有这个功能。 boost.GIL库也可以这样做:
#include <boost/gil/gil_all.hpp>
// I need this bugfix to compile against libpng 1.5, your mileage may vary
#define int_p_NULL (int*)NULL
// done with the fix
#include <boost/gil/extension/io/png_dynamic_io.hpp>
int main()
{
boost::gil::rgb8_image_t img;
png_read_image("in.png", img);
png_write_view("out.png", subimage_view(const_view(img), 5, 5, 10, 10));
}
编译时只需要-lpng
。