MyException - 我的异常网
当前位置:我的异常网» PB » PB picture控件加载图片时出现:Not a JPEG file:st

PB picture控件加载图片时出现:Not a JPEG file:starts with 0x42 0x4d异常

www.MyException.Cn  网友分享于:2015-08-26  浏览:1166次
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不会调用请开新贴,呵呵。
------解决方案--------------------

文章评论

程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
 程序员的样子
程序员的样子
程序员都该阅读的书
程序员都该阅读的书
如何成为一名黑客
如何成为一名黑客
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
总结2014中国互联网十大段子
总结2014中国互联网十大段子
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
程序员必看的十大电影
程序员必看的十大电影
一个程序员的时间管理
一个程序员的时间管理
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
我的丈夫是个程序员
我的丈夫是个程序员
代码女神横空出世
代码女神横空出世
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
程序员和编码员之间的区别
程序员和编码员之间的区别
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
为什么程序员都是夜猫子
为什么程序员都是夜猫子
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
鲜为人知的编程真相
鲜为人知的编程真相
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
旅行,写作,编程
旅行,写作,编程
程序员应该关注的一些事儿
程序员应该关注的一些事儿
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
我是如何打败拖延症的
我是如何打败拖延症的
那些争议最大的编程观点
那些争议最大的编程观点
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
漫画:程序员的工作
漫画:程序员的工作
程序员的鄙视链
程序员的鄙视链
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
Java程序员必看电影
Java程序员必看电影
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
每天工作4小时的程序员
每天工作4小时的程序员
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
中美印日四国程序员比较
中美印日四国程序员比较
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有