草庐IT

Bitmap压缩

全部标签

android - 在缩放加载之前,根据实际 Uri 预估 Bitmap 的大小

如果你有一个Uri并且你需要Bitmap,理论上你可以这样做BitmaptroublinglyLargeBmp=MediaStore.Images.Media.getBitmap(State.mainActivity.getContentResolver(),theUri);但是每次都会崩溃,所以你这样做.........BitmapFactory.Optionsoptions=newBitmapFactory.Options();options.inSampleSize=4;AssetFileDescriptorfileDescriptor=null;fileDescriptor=S

android - 由 java.lang.NullPointerException : Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference 引起

我有BitmapScalingHelper.java:publicclassBitmapScalingHelper{publicstaticBitmapdecodeResource(Resourcesres,intresId,intdstWidth,intdstHeight){Optionsoptions=newOptions();options.inJustDecodeBounds=true;BitmapFactory.decodeResource(res,resId,options);options.inJustDecodeBounds=false;options.inSample

c++ - 免费的非 gpl 数据压缩库

我正在编写存储数据的项目,因此我需要对其进行压缩。我试过zlib但它是我项目的瓶颈。所以也许有更快的解决方案。我不需要很大的压缩率,但我正在寻找真正快速的压缩。除了zlib之外,是否还有任何其他数据压缩库是真正免费的并且可以在专有软件中使用(我正在从事的项目不是基于GPL的)。我的项目在C++上,我需要压缩char*文本数组。 最佳答案 一个非常快的压缩算法是LZO.站点上的基准测试表明,解压速度与memcpy()相当。LZO的免费版本是GPL许可的,但在LZOProfessional中也有商业版本的库。.另外,从文档中:Speci

c++ - Boost 线程和 UPX 压缩 == 不是有效的 win32 应用程序?

当我刚刚声明的时候boost::threadt1,t2;在我的程序中,然后用UPX压缩.exe文件,压缩成功。但是当我尝试启动压缩的exe时,Windows告诉我它是“无效的win32应用程序”。有一个UPX错误报告(similarbug),但它有不同的错误消息(“应用程序无法正确初始化(0xc0000005)”)。在我的例子中,操作系统认为文件已损坏或其他原因,所以它甚至无法启动并显示错误!为什么??Win7x64、C++、VisualStudio、boost1.47、UPX3.07奇怪的消息:解压exe使抛出错误的损坏exe完全相同作为here.(“应用程序未能正确初始化(0xc0

c++ - 无法从压缩纹理数据创建图像 (S3TC)

我一直在尝试在Vulkan中加载使用S3TC(BC/DXT)压缩的压缩图像,但到目前为止我运气不佳。以下是Vulkan规范对压缩图像的描述:https://www.khronos.org/registry/dataformat/specs/1.1/dataformat.1.1.html#S3TC:CompressedtextureimagesstoredusingtheS3TCcompressedimageformatsarerepresentedasacollectionof4×4texelblocks,whereeachblockcontains64or128bitsoftexel

c++ - boost 压缩矩阵基础知识

我对boost::compressed_matrix的工作原理感到困惑。假设我这样声明compressed_matrix:boost::numeric::ublas::compressed_matrixT(1000,1000,3*1000);这为1000x1000矩阵中的3*1000个元素分配了空间。现在我如何给它指定非零元素的位置?何时以及如何设置非零元素?每次我在矩阵中分配一个元素时,例如B(4,4)=4,它会将那个元素标记为非零?如果可能的话,如果您能通过示例帮助我了解这一点,我将不胜感激。对内部实现有一些了解会很棒。我想确保我不会通过猜测编写出次优的程序。谢谢!

c++ - 使用 OpenCV 写入 16 位未压缩图像

如何在不进行任何压缩的情况下保存16位图像(PNG或TIFF)?语法是什么? 最佳答案 2年后,OpenCV可以通过压缩(LZW)保存16位TIFF(2.4.x版本)。但它也支持函数中未记录的参数TIFFTAG_COMPRESSIONboolimwrite(conststring&filename,InputArrayimg,constvector¶ms=vector())例如,它可以设置为COMPRESSION_LZMA(并且可以正常工作)。您可以使用COMPRESSION_NONE作为此参数的值(您还必须将TIFFTAG

c++ - 有比 JPEG 更快的有损压缩吗?

有没有一种压缩算法比JPEG更快,而且得到了很好的支持?我知道jpeg2000,但据我所知,它并没有那么快。编辑:用于压缩。Edit2:它应该在Linux32位上运行,理想情况下它应该使用C或C++。 最佳答案 Jpeg编码和解码应该极快。您将很难找到更快的算法。如果它很慢,你的问题可能不是格式而是编码器的错误实现。在ffmpeg项目中尝试来自libavcodec的编码器。 关于c++-有比JPEG更快的有损压缩吗?,我们在StackOverflow上找到一个类似的问题:

视频压缩大小怎么做?压缩视频用这3个工具准没错!

剪辑好的视频在上传的时候提示视频过大怎么办?视频过大不仅上传发布不方便,浏览保存也不方便,所以很多时候我们会将视频进行压缩,但不少软件在压缩时会破坏视频分辨率,大大降低视频质量。今天分享几个可以压缩视频的工具,不仅功能多而且压缩质量嘎嘎放心。1、视频编辑器电脑自带的视频编辑工具,可以用来剪辑简单的视频画面,同时还支持修改视频体积大小,直接在搜索框输入“视频编辑器”,然后点击打开文件下面就会进入到视频编辑主页面。打开主页面后点击“新建视频项目”,然后点击添加视频,将视频文件拖到故事版中,在右上角点击播放视频,在播放视频页面点击最右上角的“完成视频”,下面会进入到导出视频页面。接着可以重新选择导出

c++ - 将几个 std::list 迭代器压缩在一起

使用boost库,可以使用zipiterator将已知数量的迭代器压缩在一起。,但是如果直到运行时才知道要压缩的迭代器的数量呢?为了扩展一点,我有一个大小相同的列表列表,我需要将每个索引处的所有值组合在一起,并将它们提供给另一个操作。现在这都是手动的,我觉得应该有更好的方法。示例:假设我有3个列表:[1,2,3,4,5][11,12,13,14,15][21,22,23,24,25]我需要将这些列表转换成:[1,11,12][2,12,22][3,13,23][4,14,24]...等等直到运行时我才知道输入中有多少列表。 最佳答案