为图像赋值和初始化存储
语法
用法
result = ImageCreate( width , height [, [ color ][, depth ]] )
参数
width
所需的宽度,以像素为单位。
height
所需的高度,以像素为单位。
color
要填充图像区域的像素值。
depth
所需的颜色深度,以像素为单位。
返回值
如果无法创建图像,则返回NULL(
0),否则返回图像的地址。必须在图形模式初始化后调用
ImageCreate,否则返回
0.
因此,在
Shared变量声明的情况下,
ImageCreate不能用作集成初始值,即使在
Udt(在成员字段或构造函数中),因为初始化值(共享变量)设置在运行任何用户代码之前的程序。图像赋值调用必须在分离的可执行指令中,并且在图形模式初始化之后。
说明
这两个程序都尝试为指定的
width 和
height 的图像赋值内存。如果不成功,则返回NULL(
0)。否则,通过填充值为
color 的像素的整个区域来创建并初始化该大小的图像。如果未指定,
color 假定当前图形屏幕的透明颜色值,可以通过调用
ScreenControl找到。在任何情况下,返回图像的地址,然后由用户控制,并且必须使用
ImageDestroy进行销毁。
第一个过程创建一个与当前图形屏幕相匹配的颜色深度的图像,可以通过调用
ScreenControl找到。第二个过程以像素为单位创建颜色深度为
depth 的图像。对于这两个过程,只要图像的颜色深度与图形屏幕的颜色深度一致,就可以在任何屏幕模式下进行绘制过程,并且在模式更改之间使用生成的图像。
为新图像赋值内存的推荐方法是
ImageCreate.内存布局 - 大小,结构等 - 在记录的情况下,可能会从版本更改为版本,使手动计算尺寸容易出错。但是,
ImageInfo可以用于检索现有图像的大小(以字节为单位),允许手动赋值图像副本的内存,或从文件中读取或写入文件,设备。
可以使用
Get (图形)使用预先赋值的内存来初始化图像。
例子
''创建图形屏幕。
ScreenRes 320, 200, 32
''创建一个深绿色背景的64x64像素图像。
Dim image As Any Ptr = ImageCreate( 64, 64, RGB(0, 128, 0) )
If image = 0 Then
Print "无法创建图像。"
Sleep
End -1
End If
''在图像的中心绘制一个半透明的红色圆圈。
Circle image, (32, 32), 28, RGBA(255, 0, 0, 128),,, 1.0, f
''使用各种blitting方法将图像画在屏幕上。
Put (120, 60), image, PSet
Put (140, 80), image, Alpha
''破坏形象。
ImageDestroy image
Sleep
方言差异
与QB差别
参考