公共无效追加(
RasterImage图像
)
公共子追加(_
按值传递图像作为RasterImage_
)
公共:
无效追加(
RasterImage ^图像
)
图像
一个RasterImage包含1或多个帧被添加到动画。
如果你通过零(任何VisualBasic)animatedImage参数的RasterImageAnimator构造函数,您可以使用附加方法添加帧multi-frame在动画形象。这是非常有用的,如果你想玩一个动画文件被加载使用LoadImage事件。如果你需要参考multi-frame图像动画之后,您可以调用摧毁前处理方法RasterImageAnimator对象。
后你叫摧毁,这RasterImageAnimator对象是无效的,你应该只调用处理方法之后。
的ValidateLines方法让你验证线动画播放引擎将呈现到目标图像
这个例子中扮演一个GIF动画文件作为它加载该文件
使用Leadtools;
使用Leadtools.Codecs;
使用Leadtools.ImageProcessing;
使用Leadtools.Drawing;
RasterImageAnimator _animator;
RasterImage _targetImage;
图形_graphics;
LeadRect _destRect;
RasterPaintProperties _paintProperties;
(忽略())
公共无效RasterImageAppendExample(面板面板)
{
/ /初始化RasterCodecs对象
RasterCodecs编解码器=新RasterCodecs ();
/ /一个GIF动画文件
字符串文件名= Path.Combine (LEAD_VARS.ImagesDir,“Eye.gif”);
/ /加载第一帧,所以我们有面板和一个目标图像回放
_targetImage =编解码器。负载(文件名,0,CodecsLoadByteOrder。BgrOrGray 1 1);
/ /创建动画
_animator =新RasterImageAnimator (_targetImage零);
/ /设置事件处理程序中使用我们的类成员
_graphics = panel.CreateGraphics ();
_destRect = LeadRect.FromLTRB (panel.ClientRectangle。离开了,panel.ClientRectangle。前,panel.ClientRectangle。对,panel.ClientRectangle.Bottom);
_paintProperties = RasterPaintProperties.Default;
_paintProperties。PaintEngine = RasterPaintEngine.GdiPlus;
/ /钩LoadImage事件和加载该文件
编解码器。LoadImage + =新EventHandler < CodecsLoadImageEventArgs > (codecs_LoadImage);
codecs.Load(文件名);
编解码器。LoadImage - =新EventHandler < CodecsLoadImageEventArgs > (codecs_LoadImage);
_graphics.Dispose ();
_animator.Dispose ();
_animator =零;
_targetImage.Dispose ();
codecs.Dispose ();
}
无效codecs_LoadImage (对象发送方,CodecsLoadImageEventArgs e)
{
如果((e.Flags& CodecsLoadImageFlags.FirstRow) == CodecsLoadImageFlags.FirstRow)
_animator.Append (e.Image);
_animator.ValidateLines (e。行,e.Lines);
= _animator.State RasterImageAnimatorState状态;
而(状态! = RasterImageAnimatorState.End)
{
状态= _animator.Process ();
LeadRect updateRect;
开关(状态)
{
情况下RasterImageAnimatorState.WaitInput:
_animator.CancelWait ();
打破;
情况下RasterImageAnimatorState.PostClear:
情况下RasterImageAnimatorState.PostRender:
updateRect = _animator.GetUpdateRectangle (真正的);
RasterImagePainter。油漆(_targetImage _graphics LeadRect。空,updateRect _destRect LeadRect。空,_paintProperties);
打破;
}
打破;
}
}
静态类LEAD_VARS
{
公共常量字符串ImagesDir =@“C: \ LEADTOOLS21 \ Resources \图片”;
}
进口Leadtools
进口Leadtools.Codecs
进口Leadtools.ImageProcessing
进口Leadtools.Drawing
私人_animator作为RasterImageAnimator
私人_targetImage作为RasterImage
私人_graphics作为图形
私人_destRect作为LeadRect
私人_paintProperties作为RasterPaintProperties
子RasterImageAppendExample (按值传递面板作为面板)
”RasterCodecs对象初始化
昏暗的编解码器作为新RasterCodecs ()
“一个GIF动画文件
昏暗的文件名作为字符串= Path.Combine (LEAD_VARS.ImagesDir“Eye.gif”)
加载第一帧,所以我们有面板和目标图像回放
_targetImage =编解码器。负载(文件名,0,CodecsLoadByteOrder。BgrOrGray, 1, 1)
“创建动画
_animator =新RasterImageAnimator (_targetImage没有什么)
设置我们的事件处理程序中使用的类成员
_graphics = panel.CreateGraphics ()
_destRect = LeadRect.FromLTRB (panel.ClientRectangle。离开了,panel.ClientRectangle。前,panel.ClientRectangle。对,panel.ClientRectangle.Bottom)
_paintProperties = RasterPaintProperties。默认的
_paintProperties。PaintEngine = RasterPaintEngine.GdiPlus
“钩LoadImage事件和加载该文件
AddHandlercodecs.LoadImage,AddressOfcodecs_LoadImage
codecs.Load(文件名)
RemoveHandlercodecs.LoadImage,AddressOfcodecs_LoadImage
_graphics.Dispose ()
_animator.Dispose ()
_animator =没有什么
_targetImage.Dispose ()
codecs.Dispose ()
结束子
子codecs_LoadImage (按值传递发送方作为对象,按值传递e作为CodecsLoadImageEventArgs)
如果((e.Flags和CodecsLoadImageFlags.FirstRow) = CodecsLoadImageFlags.FirstRow)然后
_animator.Append (e.Image)
结束如果
_animator.ValidateLines (e。行,e.Lines)
昏暗的状态作为RasterImageAnimatorState = _animator.State
做而(< > RasterImageAnimatorState状态。结束)
状态= _animator.Process ()
昏暗的updateRect作为LeadRect
选择情况下(状态)
情况下RasterImageAnimatorState.WaitInput
_animator.CancelWait ()
情况下RasterImageAnimatorState.PostClear,
RasterImageAnimatorState.PostRender
updateRect = _animator.GetUpdateRectangle (真正的)
RasterImagePainter。油漆(_targetImage _graphics LeadRect。空,updateRect _destRect LeadRect。空,_paintProperties)
结束选择
退出做
循环
结束子
公共NotInheritable类LEAD_VARS
公共常量ImagesDir作为字符串=“C: \ LEADTOOLS21 \ Resources \图片”
结束类
帮助收藏
光栅net|C API|c++类库|HTML5 JavaScript
文档net|C API|c++类库|HTML5 JavaScript
医疗net|C API|c++类库|HTML5 JavaScript
医疗Web查看器net
188宝金博怎么下载
支持的平台上
net, Java, Android和iOS / macOS组件
C / c++类库的API
HTML5 JavaScript库
你的邮件已经发送到支持!有人应该联系!如果你的问题是紧急请回到聊天。
聊天时间:
周一——周五,上午6点等
谢谢你的反馈!
请填写表单重新开始一个新的聊天。
所有代理目前离线。
聊天时间:
周一-周五
早上8:30 - 6点
联系我们请填写这张表格,我们将通过电子邮件联系你。