资源简介
libvips, 一种低内存需求的快速图像处理 libvips: 图像处理库 libvips是一个 2D 图像处理库。 类似的库相比, libvips运行迅速,并且占用了很少的内存。 libvips许可于 LGPL 2.1 + 。它有 300个操作覆盖算术,直方图,卷积,形
代码片段和文件信息
#!/usr/bin/python
# walk vips and generate member definitions for all operators
# sample member definition:
# VImage VImage::invert( VOption *options )
# {
# VImage out;
#
# call( “invert“
# (options ? options : VImage::option())->
# set( “in“ *this )->
# set( “out“ &out ) );
#
# return( out );
# }
import sys
import re
import logging
#logging.basicConfig(level = logging.DEBUG)
import gi
gi.require_version(‘Vips‘ ‘8.0‘)
from gi.repository import Vips Gobject
vips_type_image = Gobject.GType.from_name(“VipsImage“)
vips_type_operation = Gobject.GType.from_name(“VipsOperation“)
param_enum = Gobject.GType.from_name(“GParamEnum“)
# turn a GType into a C++ type
gtype_to_cpp = {
“VipsImage“ : “VImage“
“gint“ : “int“
“gdouble“ : “double“
“gboolean“ : “bool“
“gchararray“ : “char *“
“VipsArrayInt“ : “std::vector“
“VipsArrayDouble“ : “std::vector“
“VipsArrayImage“ : “std::vector“
“VipsBlob“ : “VipsBlob *“
}
def get_ctype(prop):
# enum params use the C name as their name
if Gobject.type_is_a(param_enum prop):
return prop.value_type.name
return gtype_to_cpp[prop.value_type.name]
def find_required(op):
required = []
for prop in op.props:
flags = op.get_argument_flags(prop.name)
if not flags & Vips.ArgumentFlags.REQUIRED:
continue
if flags & Vips.ArgumentFlags.DEPRECATED:
continue
required.append(prop)
def priority_sort(a b):
pa = op.get_argument_priority(a.name)
pb = op.get_argument_priority(b.name)
return pa - pb
required.sort(priority_sort)
return required
# find the first input image ... this will be used as “this“
def find_first_input_image(op required):
found = False
for prop in required:
flags = op.get_argument_flags(prop.name)
if not flags & Vips.ArgumentFlags.INPUT:
continue
if Gobject.type_is_a(vips_type_image prop.value_type):
found = True
break
if not found:
return None
return prop
# find the first output arg ... this will be used as the result
def find_first_output(op required):
found = False
for prop in required:
flags = op.get_argument_flags(prop.name)
if not flags & Vips.ArgumentFlags.OUTPUT:
continue
found = True
break
if not found:
return None
return prop
# swap any “-“ for “_“
def cppize(name):
return re.sub(‘-‘ ‘_‘ name)
def gen_arg_list(op required):
first = True
for prop in required:
if not first:
print ‘‘
else:
first = False
print get_ctype(prop)
# output params are passed by reference
flags = op.get_argument_flags(prop.name)
if flags & Vips.ArgumentFlags.OUTPUT:
print ‘*‘
print cppize(prop.name)
if not first:
print ‘‘
print ‘VOpt
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-10-29 13:29 libvips-master\
文件 132 2018-10-29 13:29 libvips-master\.gitattributes
文件 2859 2018-10-29 13:29 libvips-master\.gitignore
文件 2090 2018-10-29 13:29 libvips-master\.travis.yml
文件 978 2018-10-29 13:29 libvips-master\AUTHORS
文件 26530 2018-10-29 13:29 libvips-master\COPYING
文件 128495 2018-10-29 13:29 libvips-master\ChangeLog
文件 15749 2018-10-29 13:29 libvips-master\INSTALL
文件 1178 2018-10-29 13:29 libvips-master\Makefile.am
文件 9331 2018-10-29 13:29 libvips-master\NEWS
文件 10309 2018-10-29 13:29 libvips-master\README.md
文件 491 2018-10-29 13:29 libvips-master\THANKS
文件 10571 2018-10-29 13:29 libvips-master\TODO
文件 1995 2018-10-29 13:29 libvips-master\autogen.sh
目录 0 2018-10-29 13:29 libvips-master\benchmark\
文件 522 2018-10-29 13:29 libvips-master\benchmark\README
文件 1269 2018-10-29 13:29 libvips-master\benchmark\benchmarkn-osx.sh
文件 1564 2018-10-29 13:29 libvips-master\benchmark\benchmarkn.sh
文件 512784 2018-10-29 13:29 libvips-master\benchmark\sample2.v
文件 42990 2018-10-29 13:29 libvips-master\configure.ac
目录 0 2018-10-29 13:29 libvips-master\cplusplus\
文件 806 2018-10-29 13:29 libvips-master\cplusplus\Makefile.am
文件 136 2018-10-29 13:29 libvips-master\cplusplus\README
文件 1286 2018-10-29 13:29 libvips-master\cplusplus\VError.cpp
文件 27921 2018-10-29 13:29 libvips-master\cplusplus\VImage.cpp
文件 1724 2018-10-29 13:29 libvips-master\cplusplus\VInterpolate.cpp
目录 0 2018-10-29 13:29 libvips-master\cplusplus\examples\
文件 470 2018-10-29 13:29 libvips-master\cplusplus\examples\avg.cpp
文件 958 2018-10-29 13:29 libvips-master\cplusplus\examples\buffer.cpp
文件 523 2018-10-29 13:29 libvips-master\cplusplus\examples\em
文件 669 2018-10-29 13:29 libvips-master\cplusplus\examples\invert.cpp
............此处省略756个文件信息
相关资源
- 专注于非越狱环境下iOS应用逆向研究
- AppxInstaller 在 Windows 存储外安装Uwp应用
- JUMPSERVER使用手册.pdf
- 麦芒装饰装修DIY小程序V3.2.76全开源安
- 开源机器人操作系统ROS.
- 开源商城B2B2C源码
- Fsociety_Keyboard开源无线机械键盘设计文
- 思源黑体简体中文开源字体TTF版V1.0
- podofo vs2010 x86编译好的库
- FPGA硬件逻辑资源实现UDP协议通信的开
- 微信版本小说分销开源代码,亲测可
- 温湿度、火灾气体检测,LCD1602串口双
- 全新裂变红包1.87.7开源带教程.zip
- 开源的物料资源管理系统
- 开源库LIBLAS
- 房贷计算器 安卓源码
- 安卓开源播放器源代码
- 外卖跑腿开源-完美可用
- jCart跨境电商开源系统源码4.3破解版
- 微聊APP 聊天功能的开源APP项目
- 开源软核处理器OPENRISC的SOPC设计
- hipergate-1.0.5-full-en.
- SIM超分辨成像开源代码
- 开源公交调度系统
- 大漠插件 开源代码
- 开源的networkcomms2.3.1通信框架(gplv3)
- zzpay开源个人微信和支付宝免签收款系
- 5173网站开源
- TPshop免费开源商城系统 已优化
- grbl开源文件你要的这里都有
评论
共有 条评论