| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 831 人关注过本帖
标题:vfp 的image控件是不是不能识别32位的bmp文件
只看楼主 加入收藏
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:786
专家分:1160
注 册:2021-10-13
结帖率:96.72%
收藏
已结贴  问题点数:20 回复次数:12 
vfp 的image控件是不是不能识别32位的bmp文件
如题,这个image控件是不是不能正常显示bit位为32的bmp文件?windows的资源管理器可以识别,第三方图片软件看图王可以查看,photoshop也可以查看,image控件显示就花了。。。

这算不算是个bug? 有什么办法可以补救?

附图:
图片附件: 游客没有浏览图片的权限,请 登录注册


你们看看能不能用image控件显示我下面这个bmp文件(下载后把jpg后缀去掉)
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-5-13 10:39编辑过]

搜索更多相关主题的帖子: image 控件 文件 bmp 识别 
2023-05-13 10:38
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:0 
深32bmp以前碰到过这个问题,我的解决方法有二个供参考
1.如果是通过gdi这种或者dc画出来没有写文件的可以直接从内存里面获取图像stream流指针通过sys(2600,拷出来,赋值给image PictureVal
2.如果是已保存的本地文件可以thisform.image1.PictureVal =FILETOSTR(GETFILE('bmp32深.bmp'))

[此贴子已经被作者于2023-5-13 14:13编辑过]

2023-05-13 14:03
csyx
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:火星
等 级:版主
威 望:37
帖 子:702
专家分:2760
注 册:2018-3-13
收藏
得分:0 
以下是引用foxfans在2023-5-13 14:03:16的发言:

深32bmp以前碰到过这个问题,我的解决方法有二个供参考
1.如果是通过gdi这种或者dc画出来没有写文件的可以直接从内存里面获取图像stream流指针通过sys(2600,拷出来,赋值给image PictureVal
2.如果是已保存的本地文件可以thisform.image1.PictureVal =FILETOSTR(GETFILE('bmp32深.bmp'))


这家伙很懒,啥也没留下
2023-05-13 15:18
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:786
专家分:1160
注 册:2021-10-13
收藏
得分:0 
回复 2楼 foxfans
刚才试了以下,不成功,你可以写个示例吗?
_screen.addobject("image1","image")
cpic=FILETOSTR("_tmp1_cutted.bmp") &&深32位图片
_screen.image1.Pictureval=cpic
*!* opic=LOADPICTURE("_tmp1_cutted.bmp") &&用这个也不行
*!* _screen.image1.Pictureval=opic
_screen.image1.visible=.t.


[此贴子已经被作者于2023-5-13 15:36编辑过]

2023-05-13 15:31
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:0 
我这里是Vfp9.0 7423
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2023-5-13 15:46编辑过]

2023-05-13 15:39
wxzd123
Rank: 2
等 级:论坛游民
帖 子:382
专家分:69
注 册:2012-9-6
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
好像得是rgb,上次有一个图是cmyk就出错
2023-05-13 15:42
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:786
专家分:1160
注 册:2021-10-13
收藏
得分:0 
我的是09.00.0000.2412,大爷的,盗版软件。。。

看来得重新下载个vfp

[此贴子已经被作者于2023-5-13 15:53编辑过]

2023-05-13 15:45
sam_jiang
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:786
专家分:1160
注 册:2021-10-13
收藏
得分:0 
回复 6楼 wxzd123
是rgb的,是色深的问题。
2023-05-13 15:54
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:451
帖 子:10606
专家分:43182
注 册:2014-5-20
收藏
得分:10 
文件头数据不对,VFP可能没有校对。
其中 BITMAPINFOHEADER 头的 SizeImage: 980
而 Bitmap Data Info 的 DataSize: 3696
且 BITMAPFILEHEADER 的 Size: 3750;OffBits: 54
显然 SizeImage 为 980 (0x03D4)不对,应该是 3696 (3750 - 54)
修改 SizeImage 为 3696 (0x0E70)就可以
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

2023-05-13 16:12
foxfans
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:113
专家分:324
注 册:2021-10-23
收藏
得分:10 
生成文件源头做起,把结构大小写清楚.
2023-05-13 16:27
快速回复:vfp 的image控件是不是不能识别32位的bmp文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.028123 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved