我编了一个图片数据库,很想以略缩图显示ADO数据库中的所有图片(就像ACDSee)
但我是初学者,不知如何实现。请求高手赐教!!!
[此贴子已经被作者于2004-11-24 13:06:16编辑过]
[IMG]http://blog.csdn.net/images/blog_csdn_net/griefforyou/15004/r_slt.jpg[/IMG] 是要这个效果吗?
http://blog.csdn.net/griefforyou/archive/2004/06/23/slt.aspx
我的意思表达错了!重新编辑帖子!
2楼的代码太复杂了,如果要以略缩图显示一张图片,可以用以下关键代码:
'1个图片容器Picture1,Picture1.ScaleMode=1。*Picture控件可以放入Frame控件中
'1个放在图片容器中用于略缩显示图片的图像控件Image1,Image1.Stretch=False
'1个用于加载图片的图像控件Image2,Image2.Stretch=False
Dim A As Single Dim B As Single Dim Pw As Integer Dim Ph As Integer Dim Iw As Integer Dim Ih As Integer
Image1.Stretch =False ' 重要设置 Image1.Picture = Image2.Picture Pw = Picture1.ScaleWidth ' 注意:不是Pw = Picture1.Width Ph = Picture1.ScaleHeight ' 注意:不是Pw = Picture1.Height Ih = Image1.Height Iw = Image1.Width If Ih > Ph Then A = Ih / Ph Iw = Iw / A Ih = Ih / A End If If Iw > Pw Then B = Iw / Pw Iw = Iw / B Ih = Ih / B End If Image1.Stretch = True ' 重要设置 (我的确是这样设置)
Image1.Height = Ih Image1.Width = Iw Image1.Top = (Ph - Ih) / 2 Image1.Left = (Pw -Iw) / 2
我自己想了一个办法:通过创建动态Image控件数组,由循环语句移动数据库记录指针时,给每个Image控件加载图片,加入时间控件来控制适当的加载图片间隔,以避免CPU占用率过高造成运行慢。这个方法的代码还没完善,由于不知如何将动态Image控件数组放入动态创建的图片容器Picture控件数组中,要按比例缩放动态Image控件数组中的图片就得完全靠代码运算实现,代码太多,运行也就慢。
改进:
[此贴子已经被作者于2004-12-01 02:19:23编辑过]