当前位置: 代码迷 >> PB >> 实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动浏览,该怎么处理
  详细解决方案

实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动浏览,该怎么处理

热度:95   发布时间:2016-04-29 08:38:10.0
实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动浏览
实现一图片显示,原比例显示图片,大于控件大小可用鼠标拖动及滚动条浏览

------解决方案--------------------
Picture控件就行,但PB做这个,功能有限!
------解决方案--------------------
建议使用Pegasus ImagXpress Pro Pegasus ImagXpress Pro(有特别版)

国外知名图像处理软件公司力作,提供专业的图像处理功能,用于开发文档图像管理应用程序包括图形编辑、浏览、打印、扫描、格式转换等功能,支持多达30种文件格式的处理并提供完整复杂的图形处理函数,并且速度极快。ImageXress可以很方便地处理图形的旋转、透明、动画、修剪的功能,提供多中图像调整算法,先进的进程管理,自动调整尺寸,JPEG2000和JPEG图像的免失真效果。 



------解决方案--------------------
up..................................
------解决方案--------------------
up.................................
------解决方案--------------------
用.NET写吧。我也没有做过。用.NET写个控件
------解决方案--------------------
呵呵,你的pb哪个版本,N年前有写过的,发个邮箱我重写一个给你~~
------解决方案--------------------
探讨
建议使用Pegasus ImagXpress Pro Pegasus ImagXpress Pro(有特别版)

国外知名图像处理软件公司力作,提供专业的图像处理功能,用于开发文档图像管理应用程序包括图形编辑、浏览、打印、扫描、格式转换等功能,支持多达30种文件格式的处理并提供完整复杂的图形处理函数,并且速度极快。ImageXress可以很方便地处理图形的旋转、透明、动画、修剪的功能,提供多中图像调整算法,先进的进程管理,自动调整尺寸,JPEG2000和JPEG图像的免失真效果。




------解决方案--------------------
//====================================================================
// 函数: of_getpicturesize() pb11.5
//--------------------------------
// 描述: 获得图片文件的图像尺寸大小(支持GIF,JPG,BMP,PNG格式)
//--------------------------------
// 参数:
// value string as_FileName 图片文件名称
// reference long al_PictureWidth 返回图片宽度
// reference long al_PictureHeight 返回图片高度
//--------------------------------
// 返回值: integer 1 - 成功,0 - 失败
//--------------------------------
 
 
Integer li_File, li_DataRead
Blob lb_Data
Long ll_FileLength,ll_PictureWidth,ll_PictureHeight
Long ll_DataLen,ll_DataPos,ll_FilePos
Boolean lb_LoopFlag = True
Char lc_Char1,lc_Char2
 
//文件不存在
If Not FileExists(as_FileName) Then Return 0
 
//取文件大小
ll_FileLength = FileLength(as_FileName)
 
//打开文件
li_File = FileOpen(as_FileName,StreamMode!)
If li_File = -1 Then Return 0
 
//读取文件
li_DataRead = FileRead(li_File,lb_Data)
If li_DataRead <= 0 Then
FileClose(li_File)
Return 0
End If


//Int li_rtn
//Byte lb_byte
////myBlob = Blob (sle_1.text, EncodingUTF8!)
//li_rtn = GetByte(lb_Data, 18, lb_byte)
//

Byte ly_byte[]
ly_byte[] = GetByteArray(lb_Data)
//messagebox("getbyte", string(lb_byte))


// GIF目前主要有两种类型
// 1. 标识为GIF87a, 只是用来存储单幅静止图像
// 2. 标识为GIF89a, 可以同时存储若干幅静止图像并进而形成连续的动画
// 文件的前 6 个字节为标识:GIF87a 或 GIF89a, 第 7,8 字节为图像宽度(width),
// 第 9,10 字节为图像高度(height), 注意两个字节中低位在前
 
// GIF 文件格式判断
If String(BlobMid(lb_Data,1,4),EncodingANSI!) = 'GIF8' Then
ll_PictureWidth= ly_byte[7]+ly_byte[8]*256
ll_PictureHeight= ly_byte[9]+ly_byte[10]*256

End If
 
// JPEG文件格式
// 前 3 个字节为标识: 0xFF,0xD8,0xFF
If ly_byte[1] = 255 and ly_byte[2] = 216 and ly_byte[3] = 255 Then
  相关解决方案