PB picture控件加载图片时出现:Not a JPEG file:starts with 0x42 0x4d异常
发布时间:2011-06-29 20:33:19 文章来源:www.iduyao.cn 采编人员:星星草
PB picture控件加载图片时出现:Not a JPEG file:starts with 0x42 0x4d错误 高手好请一定帮忙,急呀: PB中的picture控件加载用PB转出来的JPG图片时出现:Not a JPEG file:starts with 0x42 0x4d错误。 这个JPG图片是我用PB在数据库中二进制转过来的。但我发现这种转出来的JPG,不能用PHOTOSHOP打开,于是我怀疑是PB本身的问题(转出来的JPG是个伪JPG),但后面我用C#写的一个转JPG的文件,发现也是一样不能用PHOTOSHOP打开,同样不能在PB中用picture控件打开,一打开便会出现上面的错误。所以我想应该是别的什么原因,因为我以前的一个同事用JAVA写的转JPG的程序转出来就可以在PB中打开 。经过仔细对比发现即使同一个二进制文件转出来的JPG尺寸也不一样(pb\c#的尺寸是:102*126而JAVA是:295*413),并且JAVA转出来的可以用PHOTOSHOP打开,而我用PB、C#转出来的却不能,麻烦各位大虾PB高手帮忙指点。------解决方案-------------------- 文件格式有错吧? 帮顶.
------解决方案-------------------- 你用pb的处理只是从数据库中取出来而已,并没有做什么转换 这样问题就容易解决多了 没仔细看你的程序 你可以先转换一个比较小的(小于32K),看看对不对 另外你可以把数据库中取出来的数据写到文件中,和你同事用java转出来的也写到文件中 对这两个文件进行二进制比较看看有什么差异
------解决方案-------------------- 把fileopen中的replace!改为append!,并且,没处理完一张相片,将JPG文件清一下,看看。
------解决方案-------------------- 如果晚上你这贴还没有结果,我再在晚上用代码试试。
------解决方案-------------------- 呵呵,我一晚上就 在搞这个。怎么我存储的JPG就没有一点问题呢? 我在PB中,先用UpdateBlob存几张JPG进数据库,然后用你的代码读出来保存在硬盘,没有一点问题啊。FileOpen时,我用的是Append!,也应该与这个无关。
------解决方案-------------------- 你能保证你数据库里的JPG数据没问题吗? 不妨自己用PB存一些照片进去,然后再取出来,看看有没有相同的问题。 我做了一晚上,没碰到什么问题,很正常。
------解决方案-------------------- 我刚才用了一个ICO文件,做试验,结果出现类似于你的错误。可见。。。。。。 另外,如果用PB10的话,已经有FileReadEx(),返回值是LONG,所以简单多了。
------解决方案-------------------- 请注意:...用一个插件把二进制图片转到服务器变成JPG文件... 如果这个插件对图片进行了处理的话,直接取出来是不行的,还是要通过这个插件再倒出来。 直接取出的前提是,存进数据库的时候没有经过任何中间控件的处理过程,就是直接读取文件的二进制数据到 blob,然后立即通过 updateblob 传给数据库。
------解决方案-------------------- selectblob后ld_Len是多少? 你用什么方法存入数据库的? 显然你的写法,文件大于64k的内容会被你丢弃。
------解决方案-------------------- 测试一下在updateblob之前lb_image的长度,以及是为NULL。 如果是10以上的版本,最好是用filereadex和filewriteex.
------解决方案-------------------- 文件保存后,能用ACDSEE看到图片不?
------解决方案-------------------- 文件格式有错? Not a JPEG file:starts with 0x42 0x4d错误。 你用记事本打开图片文件,看它的前缀是什么?如果不是0x42 0x4d,说明该图片不是真正的jpeg文件格式。换一张别的JPEG图片试试。
------解决方案-------------------- 很久没来过了,看看现在年轻人很猛啊。
------解决方案-------------------- 记事本打开前两个字节是bm的话,这文件应该实际是bmp图片,你可以把它存成.bmp的扩展名试一下 你的update我看了,我希望望你确认一下, 到底updateblob和selectblob以及filelength三个取到的值是否一样, 你那样只能确保到blob变量正确,但是dbms的参数会影响最大updateblob的长度 尤其是sql server之类的数据库
------解决方案-------------------- 强大个头阿,bmp转jpg还不网上一艘一大堆,只是你孤陋寡闻而已 而且你根本没必要转jpg,你直接用p_1.setpicture(yourfileblob) pb的这个blob直接支持BMP,GIF, JPEG, RLE,WMF五种格式,ok?
------解决方案--------------------
探讨 记事本打开前两个字节是bm的话,这文件应该实际是bmp图片,你可以把它存成.bmp的扩展名试一下 你的update我看了,我希望望你确认一下, 到底updateblob和selectblob以及filelength三个取到的值是否一样, 你那样只能确保到blob变量正确,但是dbms的参数会影响最大updateblob的长度 尤其是sql server之类的数据库
------解决方案-------------------- dll不会调用请开新贴,呵呵。
------解决方案--------------------
友情提示: 信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
pb里关于数据窗口继承的问题
我的pb里设了一个母数据窗口,规定了样式,颜色,怎么让其他数据窗口都继承这个母dw,不用重复设颜色,样式呢
...
如何制作PB中查找的窗口,可以变透明的,而且还始终在最上面的窗口?
如何制作PB中查找的窗口,可以变透明的,而且还始终在最上面的窗口?
-...
powerbuilder 控件句柄转换,求教!!
问题:
比如我通过handle取得了一个button的句柄。
那么我能否根据这个句柄的值,又反操作还原这...
TAB控件能不能设置成不是3D的?
就类似于多行编辑控件的Border设置为false,变成平面的效果。找不到在哪里设置
------解决方案-----...
???新增按钮的问题
设置一个window窗口有个“新增”按钮,如何做出点击新增按钮,编号(varchar2类型)自动+1,点一下变成2,然后录完信息,再打开...
如何用回车键enter获得焦点
一个数据录入窗口,如何输完一个数据,按回车键跳到下一个要输入数据的地方 就和tab一样
------解决方案...
ole控件 Microsoft Web Browser
我用Microsoft Web Browser这个控件写了一个浏览器 但是不能运行脚本 对于那些需要在本地运行...
PB如何做透明的文本
我现在工作空间,应用程序,窗口都创建好了。也加了文本“用户名”,从网上看了要创建可视用户对象,粘贴了代码。但...
mdi窗口的sheet从normal变为max时闪烁
我的mdi的sheet默认打开后最大化,在sheet的resize事件中构造着把所有控件按比例伸缩,但每次...
如何使getfileopenname函数打开的窗口居中?
如何使getfileopenname函数打开的窗口居中?谢谢
------解决方案--------------------
...