#include <boost/python.hpp>
#include <boost/cstdint.hpp>
#include <boost/python/suite/indexing/map_indexing_suite.hpp>
#include <map>
#include <Magick++/Image.h>
#include <Magick++/STL.h>
#include "_Pixels.h"
using namespace boost::python;
namespace {
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_blur_overloads_0_2, blur, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_blurChannel_overloads_1_3, blurChannel, 1, 3)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_border_overloads_0_1, border, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_charcoal_overloads_0_2, charcoal, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_composite_overloads_3_4, composite, 3, 4)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_composite_overloads_2_3, composite, 2, 3)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_edge_overloads_0_1, edge, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_emboss_overloads_0_2, emboss, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_frame_overloads_0_1, frame, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_frame_overloads_2_4, frame, 2, 4)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_map_overloads_1_2, map, 1, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_medianFilter_overloads_0_1, medianFilter, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_negate_overloads_0_1, negate, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_oilPaint_overloads_0_1, oilPaint, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_quantize_overloads_0_1, quantize, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_raise_overloads_0_2, raise, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_segment_overloads_0_2, segment, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_shade_overloads_0_3, shade, 0, 3)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_sharpen_overloads_0_2, sharpen, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_sharpenChannel_overloads_1_3, sharpenChannel, 1, 3)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_solarize_overloads_0_1, solarize, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_spread_overloads_0_1, spread, 0, 1)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_wave_overloads_0_2, wave, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_signature_overloads_0_1, signature, 0, 1)
#ifndef PGMAGICK_LIB_GRAPHICSMAGICK_1_3_22
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_adaptiveThreshold_overloads_2_3, adaptiveThreshold, 2, 3)
#endif
#ifdef PGMAGICK_LIB_IMAGEMAGICK
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_adaptiveBlur_overloads_0_2, adaptiveBlur, 0, 2)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_distort_overloads_3_4, distort, 3, 4)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(Magick_Image_sigmoidalContrast_overloads_2_3, sigmoidalContrast, 2, 3)
#endif
}
PixelPacketConstArrayProxy get_const_pixels(const Magick::Image* image, int x, int y, unsigned int columns, unsigned int rows) {
const Magick::PixelPacket* cache = image->getConstPixels(x, y, columns, rows);
return PixelPacketConstArrayProxy(cache, columns*rows, *image);
}
PixelPacketArrayProxy get_pixels(Magick::Image* image, int x, int y, unsigned int columns, unsigned int rows) {
Magick::PixelPacket* cache = image->getPixels(x, y, columns, rows);
return PixelPacketArrayProxy(cache, columns*rows, *image);
}
PixelPacketArrayProxy set_pixels(Magick::Image* image, int x, int y, unsigned int columns, unsigned int rows) {
Magick::PixelPacket* cache = image->setPixels(x, y, columns, rows);
return PixelPacketArrayProxy(cache, columns*rows, *image);
}
std::map<Magick::Color,unsigned long> get_color_histogram(const Magick::Image image) {
std::map<Magick::Color,unsigned long> histogram;
colorHistogram( &histogram, image );
return histogram;
}
#if PY_MAJOR_VERSION >= 3
// enable passing bytes as pixels, they aren't autoconverted bytes -> const char/void*
static boost::shared_ptr<Magick::Image> initImageFromStorage(const unsigned int width, const unsigned int height, const std::string& map,
const Magick::StorageType type, const std::string& pixels)
{
return boost::shared_ptr<Magick::Image>(new Magick::Image(width, height, map, type, pixels.c_str()));
}
#endif
void __Image()
{
def("InitializeMagick", Magick::InitializeMagick);
class_<std::map<Magick::Color, unsigned long> >("ColorHistogram")
.def(boost::python::map_indexing_suite<std::map<Magick::Color, unsigned long> >())
;
class_< Magick::Image >("Image", init< >())
.def(init< const std::string& >())
.def(init< const Magick::Geometry&, const Magick::Color& >())
.def(init< const Magick::Blob& >())
.def(init< const Magick::Blob&, const Magick::Geometry& >())
#ifdef PGMAGICK_LIB_IMAGEMAGICK
.def(init< const Magick::Blob&, const Magick::Geometry&, const size_t >())
.def(init< const Magick::Blob&, const Magick::Geometry&, const size_t, const std::string& >())
#else
.def(init< const Magick::Blob&, const Magick::Geometry&, const unsigned int >())
.def(init< const Magick::Blob&, const Magick::Geometry&, const unsigned int, const std::string& >())
#endif
.def(init< const Magick::Blob&, const Magick::Geometry&, const std::string& >())
#ifdef PGMAGICK_LIB_IMAGEMAGICK
.def(init< const size_t, const size_t, const std::string&, const Magick::StorageType, const char* >())
#else
.def(init< const unsigned int, const unsigned int, const std::string&, const Magick::StorageType, const char* >())
#if PY_MAJOR_VERSION >= 3
.def("__init__", make_constructor(initImageFromStorage))
#endif
#endif
.def(init< const Magick::Image& >())
#ifdef PGMAGICK_LIB_IMAGEMAGICK
.def("adaptiveBlur", &Magick::Image::adaptiveBlur, Magick_Image_adaptiveBlur_overloads_0_2())
#endif
#ifdef PGMAGICK_LIB_GRAPHICSMAGICK_1_3_22
.def("adaptiveThreshold", (void (Magick::Image::*)(const unsigned int, const unsigned int, const double) )&Magick::Image::adaptiveThreshold)
#else
.def("adaptiveThreshold", &Magick::Image::adaptiveThreshold, Magick_Image_adaptiveThreshold_overloads_2_3())
#endif
.def("addNoise", &Magick::Image::addNoise)
#ifdef PGMAGICK_LIB_GRAPHICSMAGICK_1_3_x
.def("addNoiseChannel", &Magick::Image::addNoiseChannel)
#endif
.def("affineTransform", &Magick::Image::affineTransform)
.def("annotate", (void (Magick::Image::*)(const std::string&, const Magick::Geometry&) )&Magick::Image::annotate)
.def("annotate", (void (Magick::Image::*)(const std::string&, const Magick::Geometry&, const Magick::GravityType) )&Magick::Image::annotate)
.def("annotate", (void (Magick::Image::*)(const std::string&, const Magick::Geometry&, const Magick::GravityType, const double) )&Magick::Image::annotate)
.def("annotate", (void (Magick::Image::*)(const std::string&, const Magick::GravityType) )&Magick::Image::annotate)
#ifdef PGMAGICK_LIB_GRAPHICSMAGICK_1_3_27
.def("autoOrient", &Magick::Image::autoOrient)
#endif
.def("blur", &Magick::Image::blur, Magick_Image_blur_overloads_0_2())
#ifdef PGMAGICK_LIB_GRAPHICSMAGICK_1_3_x
.def("blurChannel", &Magick::Image::blurChannel, Magick_Image_blurChannel_overloads_1_3())
#endif
.def("border", &Magick::Image::border, Magick_Image_border_overloads_0_1())
.def("channel", &Magick::Image::channel)
#ifdef PGMAGICK_LIB_IMAGEMAGICK
.def("channelDepth", (void (Magick::Image::*)(const Magick::ChannelType, const size_t) )&Magick::Image::channelDepth)
.def("channelDepth", (size_t (Magick::Image::*)(const Magick::ChannelType) )&Magick::Image::channelDepth)
#else
.def("channelDepth", (void (Magick::Image::*)(const Magick::ChannelType, const unsigned int) )&Magick::Image::channelDepth)
没有合适的资源?快使用搜索试试~ 我知道了~
pgmagick是另一个基于boost.python的GraphicsMagickImageMagick包装器。.zip
共183个文件
cpp:109个
py:32个
png:8个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 11 浏览量
2023-03-31
22:54:33
上传
评论
收藏 598KB ZIP 举报
温馨提示
pgmagick是另一个基于boost.python的GraphicsMagickImageMagick包装器。
资源推荐
资源详情
资源评论
收起资源包目录
pgmagick是另一个基于boost.python的GraphicsMagickImageMagick包装器。.zip (183个子文件)
CHANGELOG 315B
_Image.cpp 43KB
_Drawable.cpp 6KB
_main.cpp 5KB
_Color.cpp 5KB
_Montage.cpp 5KB
_DrawableCompositeImage.cpp 4KB
_STL.cpp 4KB
_Geometry.cpp 3KB
_DrawableViewbox.cpp 3KB
_CompositeOperator.cpp 3KB
_DrawableRoundRectangle.cpp 2KB
_QuantumOperator.cpp 2KB
_DrawableAffine.cpp 2KB
_DrawableEllipse.cpp 2KB
_PathArcArgs.cpp 2KB
_DrawableArc.cpp 2KB
_Blob.cpp 2KB
_DrawableText.cpp 2KB
_Pixels.cpp 2KB
_PathCurvetoArgs.cpp 2KB
_VirtualPixelMethod.cpp 2KB
_DrawableRectangle.cpp 2KB
_ColorspaceType.cpp 1KB
_PathQuadraticCurvetoArgs.cpp 1KB
_DrawableCircle.cpp 1KB
_DrawableMiterLimit.cpp 1KB
_DrawableLine.cpp 1KB
_DrawableFont.cpp 1KB
_DistortImageMethod.cpp 1KB
_DrawableColor.cpp 1KB
_DrawableMatte.cpp 1KB
_PathSmoothQuadraticCurvetoAbs.cpp 1KB
_PathSmoothQuadraticCurvetoRel.cpp 1KB
_DrawableDashArray.cpp 1KB
_PathQuadraticCurvetoRel.cpp 1KB
_PathQuadraticCurvetoAbs.cpp 1KB
_QuantumType.cpp 1KB
_DrawableTextDecoration.cpp 1KB
_DrawableTextUnderColor.cpp 1KB
_FilterTypes.cpp 1KB
_DrawableStrokeColor.cpp 1KB
_PathSmoothCurvetoAbs.cpp 1KB
_PathSmoothCurvetoRel.cpp 1KB
_Exception.cpp 1KB
_DrawableTextAntialias.cpp 1KB
_DrawableFillColor.cpp 1KB
_DrawableClipPath.cpp 1KB
_DrawableTranslation.cpp 1KB
_PathCurvetoAbs.cpp 1003B
_PathCurvetoRel.cpp 1003B
_ChannelType.cpp 981B
_PathLinetoRel.cpp 969B
_PathMovetoRel.cpp 969B
_PathLinetoAbs.cpp 969B
_PathMovetoAbs.cpp 969B
_DrawableScaling.cpp 962B
_DrawablePushPattern.cpp 938B
_PathArcRel.cpp 931B
_PathArcAbs.cpp 931B
_DrawablePoint.cpp 930B
_DrawableStrokeLineJoin.cpp 908B
_DrawableStrokeLineCap.cpp 888B
_OrientationType.cpp 882B
_DrawableStrokeAntialias.cpp 856B
_DrawableFillRule.cpp 854B
_DrawableStrokeOpacity.cpp 852B
_ImageType.cpp 850B
_DrawablePushClipPath.cpp 842B
_StretchType.cpp 841B
_DrawableGravity.cpp 832B
_DrawableDashOffset.cpp 830B
_DrawableFillOpacity.cpp 828B
_PathLinetoHorizontalRel.cpp 824B
_PathLinetoHorizontalAbs.cpp 824B
_DrawableStrokeWidth.cpp 820B
_GravityType.cpp 818B
_DrawablePolyline.cpp 816B
_DrawablePointSize.cpp 812B
_DrawablePolygon.cpp 804B
_PathLinetoVerticalAbs.cpp 800B
_PathLinetoVerticalRel.cpp 800B
_DrawableBezier.cpp 792B
_DrawableRotation.cpp 784B
_Coordinate.cpp 769B
_DrawablePath.cpp 758B
_DrawableSkewY.cpp 748B
_DrawableSkewX.cpp 748B
_CompressionType.cpp 746B
_SparseColorMethod.cpp 701B
_VPath.cpp 649B
_DrawablePushGraphicContext.cpp 642B
_DrawablePopGraphicContext.cpp 634B
_DrawablePopClipPath.cpp 586B
_DrawablePopPattern.cpp 578B
_NoiseType.cpp 548B
_TypeMetric.cpp 538B
_PathClosePath.cpp 510B
_RenderingIntent.cpp 508B
_InterlaceType.cpp 500B
共 183 条
- 1
- 2
资源评论
快撑死的鱼
- 粉丝: 1w+
- 资源: 9156
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 医学图像分割数据集:超声波背景下的甲状腺结节分割(包含训练集和测试集)
- 2023数学建模国赛MatheMatical-Modeling-master.zip
- 2023数学建模2023-mathematical-modeling-master.zip
- Android动画介绍-补间动画(1)
- Redis开发安装与启动的教程与代码实例.txt
- Redis Admin一个Redis管理平台,主要用于方便查看Key信息 目前支持单机Redis和Redis Cluster模式
- 真是BIM项目招标文件模板doc
- 详细介绍Spring和SpringBoot的区别
- Address book information management system
- excel图表 元素 数据分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功