iworld2d模块——图片类. More...
Public Member Functions | |
def | __init__ |
def | destroy |
def | set_file |
def | create_alpha_map |
def | get_filename |
def | get_texture |
def | set_texture |
def | get_pixel |
def | flush_pixel |
def | set_tile_mode |
def | set_tex_uv |
def | set_common_effect |
def | cancel_common_effect |
def | set_com_effect_params |
def | enable_bounding_draw |
def | shade_add_color |
def | shade_lerp_image |
def | shade_lerp_image_mul_color |
def | set_vertex_color |
Public Attributes | |
size | |
大小,改变size,图片是从中心进行缩放. | |
key_point | |
key点坐标,其中(0,0)点是图片的中心,key点默认是(负半宽,负半高),即图片左上角. | |
pos | |
位置坐标. | |
rot | |
弧度. | |
alpha | |
透明度. | |
color | |
颜色值RGB. |
iworld2d模块——图片类.
本类继承obj2d,大小、位置等方法均可以在obj2d查到
def __init__ | ( | self, | |
texture_file, | |||
name = "" , |
|||
layer_id = None , |
|||
async_callback = None , |
|||
async_args = () , |
|||
ui_id = None |
|||
) |
初始化 参数: texture_file :str 贴图文件支持两种格式: 第一种是指定某个Txg文件中的某个贴图,中间用|分隔,如hello/res/world2d/txgdefault.txg|GX_flashing01 第二种是直接指定某个jpg/bmp/dds/tga/png文件(基于效率考虑不推荐使用此方式) name :str 生成出来的模型对象名,如果为""代表由引擎指定名字,注意名字必须唯一 layer_id :int None代表用默认的层(中间层) ui_id :int canvas_ui的标识,默认为None,None表示不属于canvas_ui
def destroy | ( | self ) |
把该对象从2D场景中销毁
def set_file | ( | self, | |
texture_file | |||
) |
把image重新设定为另外一张图 更换时保留原来的prs/color设置 参数: texture_file :str 图片资源的相对路径
def create_alpha_map | ( | self ) |
创建alpha map,用于pick时的hit_by_alpha检测
def get_filename | ( | self ) |
获取当前使用图片的文件 返回值: str 图片资源的相对路径
Reimplemented from obj2d.
def get_texture | ( | self ) |
获取当前使用图片的贴图对象 返回值: texture 图片资源的贴图对象
def set_texture | ( | self, | |
tex | |||
) |
把image重新设定为另外一张图 更换时保留原来的prs/color设置 参数: tex :render.texture 图片资源的贴图对象
def get_pixel | ( | self, | |
readonly = True |
|||
) |
获取贴图数据,用于像素操作,并对贴图进行加锁。 此接口比较底层,必须配合flush_pixel在同一帧内解锁,否则可能在图片销毁时引起crash。 参数: readonly : bool 是否只读操作。为False时对返回列表进行修改会直接生效。 返回值: list 贴图数据的列表。每个元素表示一个像素(ARGB格式),共有pitch * height个元素。 说明: 此函数只能接受单个文件的image,即txg方式的图片不支持此模式。调用此函数前,请确保image2d已经在前一逻辑帧创建好。并且确保同一帧不能对同一个image2d进行多次get_pixel操作。 另外此函数属于高级功能,会可能导致效率问题,请酌量使用。 pitch是大于等于原图片宽度的最小2次幂 height是大于等于原图片高度的最小2次幂 如果原图片是800*600,那么实际会有1024*1024个像素点。
def flush_pixel | ( | self, | |
tex_data | |||
) |
更新贴图数据,并解锁。 参数: tex_data : list get_pixel的返回数据
def set_tile_mode | ( | self, | |
w, | |||
h | |||
) |
设置平铺模式 参数: w : float 横向平铺w次,建议在1-100之间 h : float 纵向平铺h次,建议在1-100之间。 说明: 需要注意的是,此模式只能接受单个文件的image,即txg方式的图片不支持此模式 注意此接口会和set_tex_uv接口相互影响。以最后一次调用为准。 set_tile_mode(2,2) 当前image2d大小不变,横向平铺2个、纵向平铺2个缩小的图像 set_tile_mode(1,-1) 可以实现水平翻转 set_tile_mode(-1,1) 可以实现垂直翻转
def set_tex_uv | ( | self, | |
left, | |||
top, | |||
right, | |||
bottom | |||
) |
设置纹理的uv坐标 参数: left : float 纹理左坐标(一般范围在0-1) top : float 纹理上坐标(一般范围在0-1) right : float 纹理右坐标(一般范围在0-1) bottom : float 纹理下坐标(一般范围在0-1) 说明: 需要注意的是,此模式只能接受单个文件的image,即txg方式的图片不支持此模式 注意此接口会和set_tile_mode接口相互影响。以最后一次调用为准。
def set_common_effect | ( | self, | |
effect_id | |||
) |
对图片设置材质效果effect 注意事项: 1 如果是txg,则会修改整张大图 (gpu运算) 2 如果图片设置了同样的材质效果,它们将共同拥有该材质效果, 对效果的参数修改,会影响到其他图片。 3 屏幕上的具有材质效果的精灵过多,会有一定的性能损失。 参数: effect_id : int, 值如下: 1 —— Bloom,图片泛光 2 —— Gray,图片灰化 3 —— Dark Corner,暗角效果 4 —— HSV, 调整图片色相,饱和度,明度 5 —— Wave, 水波效果 6 —— Twirl, 漩涡效果 7 —— Ripple, 波纹效果 8 —— Mosaic, 马赛克效果
def cancel_common_effect | ( | self ) |
取消图片材质的效果effect.
def set_com_effect_params | ( | self, | |
arg | |||
) |
对图片的效果进行参数设置,请先确保设置了材质效果--set_common_effect。 提示:1 在逻辑帧或渲染帧中平滑改变参数可以实现一些特效。 2 请注意如果参数是浮点数,请一定要传入浮点数(gpu计算)。 参数: arg必须为dict类型。请注意参数的范围,该函数不会做参数的范围检测。 4 HSV: hue_delta : float [-180.0, 180], 默认为0.0,请注意是浮点数 saturation : float [0.0, 2.0],默认为1.0,请注意是浮点数 lightness : float [-1.0, 1.0],默认为0.0,请注意是浮点数 例: image.set_com_effect_params(hue_delta = 180.0, saturation = 1.0, lightness = 0.8) 5 Wave: wave_time : float >0 时间因子。提示:改变此值用于模拟水波随时间的变化 默认为0.0 wave_size : float >0 频率因子。 默认为0.4 amplitude : float [0.0, 1.0] 振幅。 默认为0.2 is_h : bool 是否横向波动。 默认为True is_v : bool 是否纵向波动。 默认为False 提示: 如果is_h,is_v均为True,可实现liquid 流体效果。 6 Twirl: center : (float, float) x,y的坐标范围均为[0.0, 1.0].漩涡中心。 默认为(0.5, 0.5) strength : float [0.0, 20.0]漩涡强度。 默认为0.0 7 Ripple: center : (float, float) x,y的坐标范围均为[0.0, 1.0].波纹中心。 默认为(0.5, 0.5) amplitude : float [0.0, 1.0]振幅。 默认为0.1 frequency : float [0.0, 100.0]频率。 默认为70.0 8 Mosaic: pixel_count : (float, float) x,y的数目范围均为[0.0, 100.0]像素数目。 默认为(60.0, 60.0)
def enable_bounding_draw | ( | self, | |
flag | |||
) |
显示/隐藏包围盒 更换时保留原来的prs/color设置 参数: flag :bool 为True时显示;为False是隐藏
Reimplemented from obj2d.
def shade_add_color | ( | self, | |
color, | |||
rect = None |
|||
) |
对图片进行加色操作 dst.rgb = dst.rgb + color dst是指此类的image 注意,图片必须带alpha通道的,因此支持文件也只有dds/tga/bmp(A8R8G8B8格式),否则不生效 目前这个接口暂不支持txg (cpu运算) 参数: color : int RGB格式,[0x000000, 0xFFFFFF] 0x000000为黑色,0xFFFFFF为白色 rect : (left, top, right, bottom) 图片的作用区域,为None表示整张图片
def shade_lerp_image | ( | self, | |
texture_file | |||
) |
对图片进行纹理混合(alpha混合) dst.rgb = src.rgb * src.a + dst.rgb * (1 - src.a) dst是指此类的image,src是指传入的texture_file 注意,图片必须带alpha通道的,因此支持文件也只有dds/tga/bmp(A8R8G8B8格式),否则不生效 (cpu运算) 参数: texture_file : str 混合图片的文件路径,而且该图片的大小必须和当前图片一样
def shade_lerp_image_mul_color | ( | self, | |
texture_file, | |||
color | |||
) |
对图片进行纹理混合,并且颜色相乘。 一般用于alpha混合+亮度调节 dst.rgb = (src1.rgb * src2.rgb) * src1.a + dst.rgb * (1 - src1.a) dst是指此类的image,src1是指传入的texture_file,src2是指color 注意,图片必须带alpha通道的,因此支持文件也只有dds/tga/bmp(A8R8G8B8格式),否则不生效 (cpu运算) 参数: texture_file : str 混合图片的文件路径,而且该图片的大小必须和当前图片一样 color : int RGB格式,[0x000000, 0xFFFFFF] 0x000000为黑色,0xFFFFFF为白色
def set_vertex_color | ( | self, | |
c0, | |||
c1, | |||
c2, | |||
c3 | |||
) |
按图片的四个顶点对图片进行颜色的加色. 加色的多少随离顶点的距离而渐变,越远则加色越少. 参数: c0 : 左上顶点的颜色. 如果为None则不进行加色.颜色代码(ARGB格式,例如0xFFFF0000代表红色) c1 : 左下顶点的颜色. 如果为None则不进行加色.颜色代码(ARGB格式,例如0xFFFF0000代表红色) c2 : 右下顶点的颜色. 如果为None则不进行加色.颜色代码(ARGB格式,例如0xFFFF0000代表红色) c3 : 右上顶点的颜色. 如果为None则不进行加色.颜色代码(ARGB格式,例如0xFFFF0000代表红色)