首先,我使用此代码将照片保存到Android的SD卡:
PictureCallback jpegCallback = new PictureCallback() { public voID onPictureTaken(byte[] data,Camera camera) { fileOutputStream outStream = null; currentfilename = String.format("%d",System.currentTimeMillis()); outStream = new fileOutputStream("/sdcard/" + currentfilename + ".jpg"); outStream.write(data); outStream.close(); }};
然后我使用此代码上传AndroID设备上的照片:
public voID uploadPhoto() { try { // Create httpPost httpPost post = new httpPost("http://www.example.com/upload.PHP"); httpClIEnt clIEnt = new DefaulthttpClIEnt(); clIEnt.getParams().setParameter(CoreProtocolPnames.PROTOCol_VERSION,httpVersion.http_1_1); multipartentity entity = new multipartentity( httpMultipartMode.broWSER_COMPATIBLE ); // Add the Picture as "userfile" entity.addPart( "userfile",new fileBody( new file( "/sdcard/",currentfilename + ".jpg" ),"image/jpeg") ); // Send the data to the server post.setEntity( entity ); clIEnt.execute( post ); } catch (Exception e) { // catch } finally { // finally }}
这适用于运行AndroID 2.2.2和运行AndroID 2.3.4的DroID X的LG Optimus V
但是 – 拥有运行2.3.4的HTC Evo(与我的DroID X相同)的用户正在体验到,当她们保存到手机时(以及当他们到达服务器时),她上传的所有照片都会被打乱.图像看起来像一串锯齿状的彩色线条.
关于这里可能发生什么以及可以采取哪些措施来解决问题的任何想法?
更新:
我能够访问这款手机,当我从sdcard中取出jpg文件时,它说文件大小为3.5 – 4.0 MB,但是它们无法打开并且可能已损坏……但另一方面的文件手机正常工作.
最佳答案它看起来像图片大小的问题.当宽度和高度错误时,从阵列到图像的数据解码会导致图像混乱.可以使用支持的屏幕尺寸拍摄照片:
Parameters params = camera.getParameters();List
尝试设置其中一个,例如最大的,如图片大小:
List
总结 以上是内存溢出为你收集整理的一些机器人上传乱码图像全部内容,希望文章能够帮你解决一些机器人上传乱码图像所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)