Public Member Functions | Public Attributes

image2d Class Reference

iworld2d模块——图片类. More...

Inheritance diagram for image2d:
obj2d

List of all members.

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.

Detailed Description

iworld2d模块——图片类.

本类继承obj2d,大小、位置等方法均可以在obj2d查到


Constructor & Destructor Documentation

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

Member Function Documentation

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代表红色)

Member Data Documentation

大小,改变size,图片是从中心进行缩放.

(x, y) 读写.

Reimplemented from obj2d.

key点坐标,其中(0,0)点是图片的中心,key点默认是(负半宽,负半高),即图片左上角.

(x, y) 读写.

Reimplemented from obj2d.

pos

位置坐标.

(x, y) 读写.

Reimplemented from obj2d.

rot

弧度.

float 读写.

Reimplemented from obj2d.

透明度.

int 读写 0-255.

Reimplemented from obj2d.

颜色值RGB.

int 读写 rgb范围0x000000 -- 0xFFFFFF. 0x000000为黑色,0xFFFFFF为白色.

Reimplemented from obj2d.

 All Classes Namespaces Functions Variables Properties