草庐IT

android - 图片/jpeg 的 Base64 解码;android 中的 base64

我正在尝试将base64编码的字符串解码为android中的位图。编码后的字符串将以"image/jpeg;base64,"开头我使用以下方法:publicstaticBitmapdecodeBase64(Stringinput){byte[]decodedByte=Base64.decode(input,Base64.DEFAULT);//alsotriedusingBase64.URL_SAFE,Base64.NO_PADDINGreturnBitmapFactory.decodeByteArray(decodedByte,0,decodedByte.length);}假设我调用上

java - Android Camera2 API YUV_420_888 到 JPEG

我正在使用OnImageAvailableListener获取预览帧:@OverridepublicvoidonImageAvailable(ImageReaderreader){Imageimage=null;try{image=reader.acquireLatestImage();Image.Plane[]planes=image.getPlanes();ByteBufferbuffer=planes[0].getBuffer();byte[]data=newbyte[buffer.capacity()];buffer.get(data);//data.length=332803

java - 如何在 Android 上创建渐进式 JPEG 图像

我需要通过Android手机(低至10kByte/s)的非常低带宽连接发送图像,并希望以逐行(隔行扫描)模式发送它们,以便用户在在漫长的传输过程中,另一端已经开始看到图像。现在,我正在使用常规照片应用创建图像:IntenttakePictureIntent=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);但这会创建非渐进式照片,而且我无法发现如何说服它以其他方式进行。我探索的第二个选项(读取并重新压缩拍摄的图像)被挫败了,因为据我所知,位图的压缩方法不允许除了格式名称和压缩因子之外的任何编码参数:bitmap.compress(Bitmap.Com

Android - 如何在以编程方式加载或保存 JPEG 文件时获取或设置(打印)DPI(每英寸点数)?

我有一个在Android4.0及更高版本上开发的应用程序。(该应用不支持Android4.0以下版本[IceCreamSandwich])。这个问题与各种图像(例如jpeg或png)格式的(打印)DPI有关。此问题与屏幕DPI或各种Android设备的尺寸无关。它也与在设备上以屏幕尺寸显示位图无关。我正在使用以下代码在“位图”中加载图像文件。然后我一直在裁剪它并使用jpegCompression将它保存到另一个JPEG格式的文件中。我已经能够通过以下代码执行此操作,但我无法获取加载的DPI或设置已保存图像文件的DPI。所以我有两个问题。1)如何在将JPEG文件加载到“位图”之后或同时从

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

有没有办法在不删除元数据的情况下调整JPEG图像文件的大小(从文件系统到文件系统)(就像ImageMagicksconvertin.jpg-resize50%out.jpg)?我发现调整.jpg文件大小的唯一方法是BitmapFactory.decodeStream和Bitmap.compress,如果我手动需要的话,这看起来开销很大传输图像元数据。 最佳答案 可以用android.media.ExifInterface读取元数据,通过Bitmap.compress压缩图像,然后将元数据保存回来:Stringfilename="yo

android - onPictureTaken 后旋转 JPEG 的字节数组

有没有办法在不将字节数组解码为位图的情况下旋转字节数组?目前在jpegPictureCallback中,我只是将字节数组直接写入文件。但是图片是旋转的。我想在不解码为位图的情况下旋转它们,希望这样可以节省我的内存。BitmapFactory.Optionso=newBitmapFactory.Options();o.inJustDecodeBounds=true;BitmapFactory.decodeByteArray(data,0,data.length,o);intorientation;if(o.outHeight 最佳答案

android - 快速解码 JPEG 图像的方法

我需要解码(解压成位图)非常小(大约1200*1200)的JPEG。问题是我需要尽快完成。我试过libjpeg,它很慢。我也试过BitmapFactory.decodeByteArray-它快一点,但仍然不够快。还有哪些选择?native(C++)库是首选。附言我的JPEG是直接在内存中创建的。附言我想知道libjpeg怎么会比BitmapFactory.decodeByteArray慢。 最佳答案 试试LibjpegTurbo:http://libjpeg-turbo.virtualgl.org/

c++ - 快速JPEG编码库

有人知道用于C/C++的免费开源jpeg编码库吗?目前我正在使用ImageMagick,它易于使用,但速度很慢。我将其与IntelPerformancePrimitives的评估进行了比较,IPP的速度非常快。不幸的是,它也需要200美元,而且我不需要99%的IPP)。此外,它只会在Intel上快速运行。有人做过测试吗?还有其他比ImageMagick更快的好库吗?编辑:我使用的是8位版本的ImageMagick,它应该更快。 最佳答案 在TigerVNC(http://www.tigervnc.com)的主干中查看libjpeg/

c++ - OpenCV cvSaveImage Jpeg 压缩因子

我正在使用OpenCV并使用cvSaveImage函数保存为jpeg,但我无法找到它使用的Jpeg压缩因子。什么是cvSaveImage(...)的Jpeg压缩因子如何在使用cvSaveImage(...)时传递压缩因子 最佳答案 目前声明cvSaveImage()只接受两个参数:intcvSaveImage(constchar*filename,constCvArr*image);然而,“latesttestedsnapshot”有:#defineCV_IMWRITE_JPEG_QUALITY1#defineCV_IMWRITE_

windows - 如何在 Windows 上使用 jpegtran 批量转换 JPEG 图像

是否可以在Windows上使用jpegtran批量转换JPEG图像文件夹?我通常对一个文件使用以下命令,但我不确定如何将它应用于JPEG文件的整个目录:jpegtran-copynone-optimizea.jpgb.jpg谢谢。 最佳答案 下载jpegtran将jpegtran.exe放在C:/ProgramFiles/ImageOptimization中(如果不存在则创建该文件夹)。打开您的文本编辑器,然后复制并粘贴下面的代码。保存为optimize.bat,然后将文件放在C:/ProgramFiles/ImageOptimiz