求教:blob生成的图片文件在datawindow无法预览以及打印,这个是怎么回事

奔跑吧兔子 2017-08-23 02:59:24
通过下面代码将blob类型保存为图片后
blob lb_picture
integer li_FileNum
String ls_Path ,ls_errtext
Selectblob blob_zd into :lb_picture from table_name where l_name = '201207';
li_FileNum = FileOpen( 'd:\123.gif',StreamMode!, Write!, Shared!,Append!)
if li_FileNum = -1 then
fileclose(li_filenum)
end if
FileWrite(li_FileNum, lb_picture)
fileclose(li_filenum)
在datawindow中用picture空间打开图片,上面的编辑界面有图片,而下面的预览则是空的
在window窗体的picture控件setpicture(blob)这个在窗体中能显示;
已经bmp、jpg、gif这三个都不行(jpg在datawindow直接报错:Not a JPEG file: starts with 0x47 0x49)已经核实blob生成的图片文件格式是gif的,
把生成的图片放到word文档中打印预览又可以看见
唯独在datawindow中不行
如图:

控件属性:
...全文
1471 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzh2021 2018-01-04
  • 打赏
  • 举报
回复
譬如上图,实际是个png,而不是jpg
wzh2021 2018-01-04
  • 打赏
  • 举报
回复
这是个伪gif。
https://www.cnblogs.com/sunsoft/archive/2012/01/04/2311989.html
李哈哈 2017-08-29
  • 打赏
  • 举报
回复
'' as tjqm,'' as tzqm 这是datawindow对象里面的两列 所有属性都默认 ls_type = 'l' ll_yzh = This.Tab_yz.tabpage_lsyz.dw_zyys_lsyz.Object.yzh[i] ls_sflx = This.Tab_yz.tabpage_lsyz.dw_zyys_lsyz.Object.sflx[i] ls_path = 'ca\temp'+ls_type+String(ll_yzh)+'.bmp' //提交签名 select count(*) into :ll_count from ca_zy_qz_ys_m where zyh = :is_zyh and cqls = :ls_type and yzh = :ll_yzh and sflx = :ls_sflx and tjys_status = '1'; if ll_count <= 0 then continue; end if //读取图片 SelectBlob tjys_pic Into :lb_pic From ca_zy_qz_ys_m where zyh = :is_zyh and cqls = :ls_type and yzh = :ll_yzh and sflx = :ls_sflx and tjys_status = '1'; IF in_cst_ca_pic.uf_pic_read(ls_path,lb_pic) = True THEN This.Tab_yz.tabpage_lsyz.dw_zyys_lsyz.Object.tjqm[i] = ls_path else This.Tab_yz.tabpage_lsyz.dw_zyys_lsyz.Object.tjqm[i] = '' END IF 看看你能不能看懂 直接把下载下来的图片路径赋值给列就能显示图片 也能打印也能预览
奔跑吧兔子 2017-08-28
  • 打赏
  • 举报
回复
试了,还是不行。和之前一样的问题,效果是一样的
WorldMobile 2017-08-24
  • 打赏
  • 举报
回复
改为计算列,表达式为Bitmap("d:\111.gif"),试试

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧