实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动浏览
实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动及滚动条浏览
[解决办法]
Picture控件就行,但PB做这个,功能有限!
[解决办法]
建议使用Pegasus ImagXpress Pro Pegasus ImagXpress Pro(有特别版)
国外知名图像处理软件公司力作,提供专业的图像处理功能,用于开发文档图像管理应用程序包括图形编辑、浏览、打印、扫描、格式转换等功能,支持多达30种文件格式的处理并提供完整复杂的图形处理函数,并且速度极快。ImageXress可以很方便地处理图形的旋转、透明、动画、修剪的功能,提供多中图像调整算法,先进的进程管理,自动调整尺寸,JPEG2000和JPEG图像的免失真效果。
[解决办法]
up..................................
[解决办法]
up.................................
[解决办法]
用.NET写吧。我也没有做过。用.NET写个控件
[解决办法]
呵呵,你的pb哪个版本,N年前有写过的,发个邮箱我重写一个给你~~
[解决办法]
ll_DataLen = Len(lb_Data)
ll_DataPos = 3
ll_FilePos = 3
Do While lb_LoopFlag
ll_DataPos = ll_DataPos + 1
ll_FilePos = ll_FilePos + 1
If ly_byte[ll_DataPos] = 255 And ly_byte[ll_DataPos + 1] <> 255 Then
If ly_byte[ll_DataPos + 1] >= 192 And ly_byte[ll_DataPos + 1] <= 195 Then
//找到尺寸数据
ll_PictureWidth = ly_byte[ll_DataPos + 7] * 256 + ly_byte[ll_DataPos + 8]
ll_PictureHeight = ly_byte[ll_DataPos + 5] * 256 + ly_byte[ll_DataPos + 6]
lb_LoopFlag = False
Else
//没有找到尺寸数据,重新读取文件
ll_FilePos = ll_FilePos + ly_byte[ll_DataPos + 3] * 256 + ly_byte[ll_DataPos + 2] + 1
If ll_FilePos > ll_FileLength Then
FileClose(li_File)
Return 0
Else
FileSeek(li_File,ll_FilePos)
FileRead(li_File,lb_Data)
ll_DataLen = Len(lb_Data)
ll_DataPos = 0
End If
End If
End If
If ll_DataPos = ll_DataLen - 9 And lb_LoopFlag = True Then
ll_FilePos = ll_FilePos - 9
FileSeek(li_File,ll_FilePos)
FileRead(li_File,lb_Data)
ll_DataLen = Len(lb_Data)
ll_DataPos = 0
End If
If ll_FilePos >= ll_FileLength Then
lb_LoopFlag = False
End If
Loop
End If
// BMP文件格式
// 前两个字节是标识:标识可能有很多种
// 第 19,20,21,22 字节为宽度(width), 第 23,24,25,26 字节为高度(height)
// 四个字节组成dword, 低位在前
If String(BlobMid(lb_Data,1,2),EncodingANSI!) = 'BM' Then
ll_PictureWidth= ly_byte[19]+ly_byte[20]*256+ly_byte[21]*65536+ly_byte[22]*16777216
ll_PictureHeight= ly_byte[23]+ly_byte[24]*256+ly_byte[25]*65536+ly_byte[26]*16777216
End If
If ly_byte[2] = asc('P') and ly_byte[3] = asc('N') and ly_byte[4] = asc('G')Then
ll_PictureWidth= ly_byte[20]+ly_byte[19]*256+ly_byte[18]*65536+ly_byte[17]*16777216
ll_PictureHeight= ly_byte[24]+ly_byte[23]*256+ly_byte[22]*65536+ly_byte[21]*16777216
End If
If ll_PictureWidth > 0 And ll_PictureHeight > 0 Then
al_PictureWidth = ll_PictureWidth
al_PictureHeight = ll_PictureHeight
//将图像的真实大小转换为PBUnit大小,并返回
al_PictureWidth = PixelsToUnits(ll_PictureWidth,XPixelsToUnits!)
al_PictureHeight = PixelsToUnits(ll_PictureHeight,YPixelsToUnits!)
FileClose(li_File)
Return 1
Else
FileClose(li_File)
Return 0
End If
Return 0
[解决办法]
先頂一下.
[解决办法]
没做过,想着很简单,楼主试试:先放个容器控件例如tabpage什么的,带上滚动条
然后在里面放个图片控件以原始尺寸显示图片
当图片大于容器控件时容器控件就出现滚动条了
[解决办法]
搞错了,好像pb没这种现成带滚动条的容器控件。
[解决办法]
直接自定义custom visual,属性里scroll把横向纵向都钩上,再在上面左上角扔一个图片控件即可。保存为用户对象往窗口上放
[解决办法]
谢谢楼上的,学习了2010年3月25日 22时12分50秒