用CB实现图像的特技显示

命运不能主宰

命运不能主宰

2016-02-19 15:31

今天给大家分享的是由图老师小编精心为您推荐的用CB实现图像的特技显示,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

  在网页、软件和游戏中,我们经常可以看到图像的各种特技显示,如中心扩散、百叶窗帘、右下推出等,这种动感图像显示,往往给人一种赏心悦目的感觉,给我们的应用程序增加了一些美感。在C++ Builder中,我们可以很容易地实现这些功能。下面以一个具体的例子,介绍实现中心扩散和百叶窗帘两种显示技巧,并说明在C++ Builder中处理图像的基本方法。

  在C++ Builder中新建一个工程,然后在窗体上添加一个Image图像控件,把它的Picture属性设置为一幅bmp图像,调节Image控件尺寸与图像的尺寸大小相同。再在窗体上添加两个Button控件,把Button1的Caption属性设置为中心扩散、Button2的Caption属性设置为百叶窗帘。

  1. 对于中心扩散的实现,我们利用一定的算法,通过一定的循环次数,每次显示图像的一部分,从图像的中心位置开始显示,直到显示出图像的整体。

  在Button1的OnClick事件中加入以下代码:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  

void _fastcall TForm1::Button1Click(TObject *Sender)
{
int i,left,top,width,height;
left = Image1-Left;
top = Image1-Top;
width = Image1-Width;
height = Image1-Height;
for (i = 0; i = width; i++){
//通过图像的坐标选定图像的一部分
Image1-Left = left + (width - i)/2;
Image1-Top = top + height/2 - i*height/width/2;
Image1-Width = i;
Image1-Height = i*height/width;
Image1-Refresh();
}
}

  2.对于百叶窗帘,我们可利用画布(Canvas)提供的矩形拷贝(CopyRect)方法在不同画布之间进行图像复制来实现,该方法声明如下:

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  void _fastcall CopyRect(const Windows::TRect &&Dest, TCanvas*Canvas, const Windows::TRect &&Source); 

  把参数Canvas指定的源画布矩形区域Source复制到目标画布Dest的矩形区域。利用这种方法,再通过一定的算法,即可实现百叶窗帘的特技显示。

  在Button2的OnClick事件中加入以下代码:

  

void _fastcall TForm1::Button2Click(TObject *Sender)
{
int inum,icount,i,j;
Graphics::TBitmap *pBitmap = new Graphics::TBitmap();
pBitmap-Height = Image1-Height;
pBitmap-Width = Image1-Width;
inum =16; //这是百叶窗的叶数
icount = pBitmap-Height /inum;
for (i = 1; i icount; i++)
for (j = 0; j = inum; j++){
pBitmap-Canvas-CopyRect(Rect(0,icount*j + i - 1, pBitmap-Width,icount*j + i),Image1-Canvas, Rect(0, icount*j + i - 1,pBitmap-Width, icount*j + i));
Form1-Canvas-Draw(Image1-Left,Image1-Top,pBitmap);
}
delete pBitmap;
}

  按F9运行以上程序,即可获得所需要的百叶窗帘效果。

  Image图像控件还提供了另外一些很有用的属性和方法,大家可以充分利用C++ Builder的帮助,掌握了这些属性和方法,再利用一些程序算法,就可以随心所欲地写出各种图像特技显示的程序。在我们的应用程序开发中,就可以加入这些图像特技显示,为我们的应用程序增加一些光彩。

展开更多 50%)
分享

猜你喜欢

用CB实现图像的特技显示

编程语言 网络编程
用CB实现图像的特技显示

VB中实现图像特技(2)

编程语言 网络编程
VB中实现图像特技(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

用Delphi实现JPEG格式图像的显示

Delphi
用Delphi实现JPEG格式图像的显示

VB中实现图像特技(1)

编程语言 网络编程
VB中实现图像特技(1)

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

用Authorware显示BMP图像

Authorware 设计软件 平面设计软件 广告设计软件
用Authorware显示BMP图像

也谈“用Authorware显示BMP图像”

设计软件 平面设计软件 广告设计软件
也谈“用Authorware显示BMP图像”

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

WEB2.0开发之AJAX:HTML++同Client/SOA

WEB2.0开发之AJAX:HTML++同Client/SOA

十七岁的那年 吻过她的脸 - QQ情侣分组

十七岁的那年 吻过她的脸 - QQ情侣分组
下拉加载更多内容 ↓