Articles of jpeg

Android / Java:将字节数组保存到文件(.jpeg)

我正在开发一个Android应用程序,部分应用程序必须拍照并将它们保存到SD卡。 onPictureTaken方法返回一个包含捕获图像数据的字节数组。 我需要做的就是将字节数组保存到.jpeg图像文件中。 我试图在BitmapFactory.decodeByteArray(获取Bitmap)和bImage.compress(到OutputStream),普通OutputStream和BufferedOutputStream的帮助下完成此操作。 所有这三种方法似乎都给了我同样奇怪的错误。 我的Android手机(800万像素摄像头和一个体面的处理器),似乎保存了照片(尺寸看起来正确),但是以一种损坏的方式(图像被切片并且每个切片都被移动;或者我只得到几乎各种颜色的水平线) ; 奇怪的是,带有500万像素摄像头和快速处理器的Android平板电脑似乎可以正确保存图像。 所以我想也许处理器无法跟上保存大图像,因为我在大约3张图片后得到了OutOfMemory Exceptions(即使压缩质量为40)。 但那么内置的相机应用程序是如何做到的,而且速度也快得多? 我很确定(从调试)OutputStream写入所有数据(字节),它应该没问题,但它仍然被破坏。 ***简而言之,将字节数组保存到jpeg文件的最佳/最快方法是什么? 马克,提前谢谢 我尝试过的代码(和其他一些细微的变化): try { Bitmap image = BitmapFactory.decodeByteArray(args, 0, args.length); OutputStream fOut = new FileOutputStream(externalStorageFile); long time = System.currentTimeMillis(); image.compress(Bitmap.CompressFormat.JPEG, jpegQuality, fOut); System.out.println(System.currentTimeMillis() – time); fOut.flush(); fOut.close(); } catch (Exception e) { } 和 try { externalStorageFile.createNewFile(); FileOutputStream fos = new FileOutputStream(externalStorageFile); […]

Android将EXIF GPS纬度和经度写入JPEG失败

我想添加GPS数据,如经度和纬度到JPEG照片。 通过标签卡(NFC)捕获照片在logcat中可以显示正确的值,但是这些值不能写入jpg照片文件! 下面是我的代码:它用于保存jpg文件并调用下面的方法该方法用于将EXIF GPS参数添加到jpg中GPS参数(如经度和纬度)已在另一个活动中使用。 我在Firefox中使用EXIF Viewer来查看结果。 IOexception的位置是否重要? 以下是可能导致失败的重要日志猫日志:07-26 11:48:30.386:D / NativeNfcTag(195):标记丢失,重新启动轮询循环 public static void writeFile (File photo, double latitude, double longitude) throws IOException{ ExifInterface exif = null; try{ Log.v("latiDouble", ""+latitude); Log.v("longiDouble", ""+longitude); exif = new ExifInterface(photo.getCanonicalPath()); if (exif != null) { double latitu = latitude; double longitu = longitude; double alat = Math.abs(latitu); double along […]

如何在Android中将位图转换为jpeg文件?

我有点迷路了 我必须将裁剪图像的位图转换为.jpeg文件。 我看了其他相关的问题,但没有一个是相对于我的。 (大部分被还原为位图文件) 提前致谢 PS。 第一次Android开发

如何使用自定义质量级别在Android上保存JPEG图像

在Android上,如何以30%的质量将图像文件保存为JPEG格式? 在标准Java中,我将使用ImageIO将图像作为BufferedImage读取,然后使用IIOImage实例将其另存为JPEG文件: http : //www.universalwebservices.net/web-programming-resources/java/adjust-jpeg-在java中的图像压缩质量保存图像 。 但是,似乎Android缺lessjavax.imageio包。

将大图像加载到位图?

我试图做一个基本的应用程序,显示相机的图像,但是当我尝试从BitmapFactory.decodeFile从SD BitmapFactory.decodeFile载.jpg,它返回null。 它不会给我一个内存不足的错误,我觉得很奇怪,但是完全相同的代码在较小的图像上工作正常。 通用画廊如何以相当小的内存显示相机的巨大照片?

调整文件系统中的JPEG图像大小

有没有一种方法来调整JPEG图像文件的大小(从文件系统到文件系统),而不删除元数据(就像ImageMagicks convert in.jpg -resize 50% out.jpg )? 我发现调整.jpg文件的唯一方法是findBitmapFactory.decodeStream和Bitmap.compress ,如果手动需要传输图像元数据,看起来像是一个很大的开销。

从Libjpeg-turbo优化中获得哪些Android设备的好处?

libjpeg-turbo项目“使用SIMD指令(MMX,SSE2,NEON)来加速x86,x86-64和ARM系统上的基准JPEG压缩和解压缩”。 什么样的Android设备空间共享支持这些指令,因此将从使用这个库获得速度优势? (我将在通过NDK访问的本机代码中解压JPEG。)

Android ExifInterface saveAttributes()不覆盖以前的数据?

我试图在我的自定义相机应用程序中将经纬度和其他数据写入jpeg的Exif头。 通常情况下,android自动使用光圈,ISO,快门速度等数据填充标题。但是,当我手动添加创build一个ExifInterface实例,设置GPS位置SetAttributes() ,并调用SaveAttributes() ; 所有其他相机数据消失。 这是否应该发生? 我怎样才能简单地添加一个标签而不覆盖其他所有东西? 我在其他地方看到了创build两个ExifInterfaces的例子,一个是旧的(来自图片)和一个新的,并将每个从旧到新的填充值与其他数据一起复制。 然而,这是令人讨厌和冗长的。 我想find一个更好的解决scheme。 这是我的代码: try{ ExifInterface exif = new ExifInterface(pictureFile.getAbsolutePath()); exif.setAttribute(ExifInterface.TAG_GPS_LATITUDE, mGpsLocation.getLatDms()); exif.setAttribute(ExifInterface.TAG_GPS_LONGITUDE, mGpsLocation.getLonDms()); exif.setAttribute(ExifInterface.TAG_GPS_ALTITUDE, mGpsLocation.getAltDms()); exif.saveAttributes(); } catch(IOException e){ e.printStackTrace(); } 谢谢

在android中将位图转换为jpeg

有没有什么办法将android.graphics.Bitmap实例转换为android中的jpeg?

Android / Java:将一个字节数组保存到一个文件(.jpeg)

我正在开发Android应用程序,部分应用程序必须拍照并将其保存到SD卡。 onPictureTaken方法返回一个包含捕获图像数据的字节数组。 我所需要做的就是将字节数组保存到.jpeg图像文件中。 我已经尝试在BitmapFactory.decodeByteArray(获得一个位图),然后bImage.compress(一个OutputStream),一个普通的OutputStream和一个BufferedOutputStream的帮助下做到这一点。 所有这三种方法似乎给我同样的怪异的错误。 我的Android手机(800万像素的摄像头和一个不错的处理器),似乎保存了照片(大小看起来正确),但在一个损坏的方式(图像被切片,每一个切片,或者我只是几乎水平线的各种颜色) ; 奇怪的是,一个500万像素的摄像头和一个快速的处理器的Android平板电脑似乎正确地保存图像。 所以我想也许处理器不能跟上保存大的图像,因为我约3张图片后(即使在40的压缩质量)我得到了OutOfMemoryexception。 但是,如果内置的相机应用程序如何做,而且更快? 我很确定(从debugging)OutputStream写入所有的数据(字节),应该没问题,但它仍然损坏。 ***总之,什么是最好的/最快的方式(工作)将字节数组保存到JPEG文件? 在此先感谢,马克 我试过的代码(和其他一些细微的变化): try { Bitmap image = BitmapFactory.decodeByteArray(args, 0, args.length); OutputStream fOut = new FileOutputStream(externalStorageFile); long time = System.currentTimeMillis(); image.compress(Bitmap.CompressFormat.JPEG, jpegQuality, fOut); System.out.println(System.currentTimeMillis() – time); fOut.flush(); fOut.close(); } catch (Exception e) { } 和 try { externalStorageFile.createNewFile(); FileOutputStream fos = new FileOutputStream(externalStorageFile); fos.write(args); […]