问题标签 [libpng]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 带有自定义 QIODevice 实现的 QImageReader
我有一个自定义 QIODevice 可以解密来自另一个 QIODevice 的数据流(它可能是一个文件)。它用于加密和解密文件。有些文件是图像。然后 QImageReader 用于直接从加密流中加载图像,但在极少数情况下,QImageReader 无法从该流中读取图像。QImageReader 可以从未加密的文件中正确读取一张 PNG 图像。但是,当我的自定义 QIODevice 在 QFile 上分层并传递给 QImageReader 时,它会失败并打印
“libpng 错误:IDAT:CRC 错误”
我已经进行了一些深入的调试并跟踪了 QImageReader 将在我的 QIODevice 上调用的所有读取和查找,并将它们与未加密文件的 QFile 一起放置:
事实证明,从文件中读取的所有数据与来自流的数据完全相同......
为什么它会返回那个 libpng 错误?
opengl - VC6.0下的libpng错误
我在我的 OpenGL 项目中使用libpng在 windows xp 下使用 VC6.0 加载 png 文件的纹理。构建没问题,运行过程中出现错误。错误是
我尝试重新启动,但错误仍然存在。而且我已经把exe文件放到另一个xp桌面上,错误仍然存在。
调试的时候发现这个语句出错了:(一般是和libpng一起用的)
错误信息是
我的代码在 fedora 下的 g++ 下运行良好,但在 windows XP 下的 VC6.0 下出现问题。
源代码很大,不知道哪里出错了,所以不知道这里贴什么代码。
有人对此有任何想法吗?
如果您能在这方面帮助我,我将不胜感激。谢谢!:)
c - 当我有 20.0 时,highgui 抱怨它需要 >=17.0.0
这是一种丑陋的,但我被困住了,所以它是这样的:
我正在编写一个使用opencv(highgui和其他部分)并最终由ffmpeg(libavfilter)加载的动态库(此后称为'mylib.dylib')。该库编译得很好。但是当我尝试从 ffmpeg 中 dlopen() dylib 时,我收到以下错误:
但是,当我运行otool -L /usr/local/lib/libpng15.15.dylib时, 我得到以下信息:
上次我查了一下,20.0.0 比 17.0.0 晚,这是 highgui 说的它需要的。
我想这可能是一个架构问题(我在运行 Lion 的 Mac 上,所以我遇到了很多关于 i386/x86_64 的问题),但是在所有库上运行“文件”显示一切(highgui、libpng、 mylib) 是Mach-O 64 位动态链接共享库 x86_64
我想也许有一些其他版本的 libpng 隐藏在我的系统某处,但 dlopen 错误特别指向 /usr/local/lib/libpng15.15.dylib
很明显,我在这里遗漏了一些东西——诚然,我不是这些动态库如何链接的专家。因此,如果我忘记包含一些相关信息,请原谅。
更新 我忘了提到——当我通过 XCode 运行 ffmpeg(没有 dlopen 错误)时,lib 工作正常,这让我相信它可能与 XCode 设置的环境变量有关,而我不是。
谢谢!
解决方案 1. 别傻我使用的是 MAMP,因为我通过 php 脚本调用 ffmpeg,所以它使用了自己的一组 dylib,其中(惊喜)包括 libpng 16.0.0
image - 使用具有许可许可的开源库转换原始图像
我需要将原始的 rgb32 格式的图像转换为具有许可(例如 BSD 或 Apache)许可证的库(按优先顺序以 Java、C、C++ 编写)的 PNG。
我可以通过这个调用使用 FFmpeg 转换图像:
ffmpeg.exe -vframes 1 -vcodec rawvideo -f rawvideo -pix_fmt rgb32 -s 20x40 -i infile -f image2 -vcodec png out.png
其中 20x40 是宽度乘以高度。
但是,遗憾的是,由于它的许可证,我需要避免使用 FFmpeg。
我看到人们推测 libpng 可以完成这项工作,但鉴于我在 libpng 站点上看到的文档,我对此表示怀疑。也许你会举个例子。
我不知道 rawvideo 和 rgb32 值对 FFmpeg 意味着什么,所以我问了这个问题。
编辑 1:编辑 ffmpeg 调用以显示宽度 x 高度。
android - OpenGL纹理+ libpng导致图像失真
当我尝试使用 NDK 和 OpenGL 渲染它们时,我无法弄清楚为什么我的 PNG 图像加载为扭曲的图像。PNG 在我的资产文件夹中,它们有一个 alpha 层。这是我从资产文件夹中获取它们的方式:
以下是它们在 OpenGL 中的渲染方式:
SCR_CheckErrors()
进行一些错误检查(但不打印错误):
image-processing - 使用libpng编码时如何将像素设置为8位png透明?
在使用 libpng 将 rgb 数据编码为 8 位 png 图像(调色板)时,我试图将像素标记为透明。如果我在这种情况下创建一个单独的 Alpha 通道,则该 Alpha 通道将被忽略。使用 8 位调色板时,有没有办法将像素设置为不透明或透明?
谢谢
c++ - 为什么将 libpng 与 Xcode 一起使用时会出现兼容性版本问题?
我在 OS X 10.7.1 上使用带有 Xcode 4.2 的 libpng 时遇到问题。
我的程序无法启动并出现以下错误:
和:
我所做的只是添加/usr/X11/libpng.dylib
到链接库中,那么这个“版本 20”的要求来自哪里?为什么 Xcode 不只需要可用的版本?如何告诉我的程序可以使用版本 17?
png - 快速写png
概括
我想尽快写一个 .png 文件,而不用担心压缩。也就是说,我不太关心文件大小,但我确实关心写操作是否发生得越快越好。
动机
我正在使用客户端的 OpenLayers 和后端的 python/C++ 制作基于 Web 的地图应用程序。当用户在地图上移动时,应用程序需要能够快速绘制动态内容。我有基于瓦片(256x256 瓦片)和基于单个图像(“单个瓦片”)的版本,但在这两种情况下,后端渲染的最慢部分实际上是将图像保存为 png 文件(无论是-磁盘或内存)。例如,我可能能够在大约 200 毫秒内生成某个视图的“raw”、“tga”或“tiff”版本,但生成 .png 版本需要 1.2 秒,因为 .png保存几乎需要一秒钟,而实际保存其他格式的时间为 100 毫秒或更短(即使“原始”文件的大小是 .png 文件的五倍)。而且这个文件保存时间也大大超过了将结果图像从服务器传输到客户端的时间。(我的应用程序的一个重要属性是,通常“后端”将与浏览器在同一台机器上运行,因此传输时间可以忽略不计,即使对于大文件也是如此。)
我想我可以通过调用使 .png 快速写入(当使用 C++ 中的 libpng 时)
在调用任何png_write_...
函数之前。然而,虽然该调用似乎确实阻止了 libpng 压缩文件(生成的文件与 .raw 文件的大小大致相同),但它并没有明显加快保存 .png 的速度。
请帮忙
我需要为这些图像使用 .png,因为我需要它们成为基本地图顶部的透明叠加层,而且我需要的不仅仅是 GIF 提供的 256 种颜色。OpenLayers 只是简单地使用 html img 标签,所以我的理解是我只能使用有效的 img 格式。
我认为有一种方法可以通过不进行任何实际压缩来快速编写 .png 文件(我知道 .png 是“始终压缩的”,但我想这可能包括“空压缩”)。看起来您应该能够编写一个简单的固定页眉,然后是未压缩的数据,然后是一些固定的页脚。或者也许是同样的想法,但是以逐行的方式。关键是我可以非常快速地在 C++ 内存中对这 2.5 MB 的原始数据进行各种循环,并且可以非常快速地将其转储为各种文件格式,所以看起来我应该能够以固定的方式转储它, 未压缩的 .png 格式也很快。
听起来对吗?你知道我在哪里可以找到这样做的代码示例吗?
qt - 是否可以直接使用 Qt 内置的 libpng 库?
我正在将 QImage 保存到 PNG 文件中,而 QPNGHandler 的可定制性不够(我需要 png_set_filter),所以我需要编写自己的 PNG 处理程序。如果 Qt 没有配置 -system-libpng,我可以直接访问 Qt 的捆绑版本吗?
现在我正在静态编译 Qt,但这可能会改变。
php - 生成慢速pdf(yii框架)
我查看了类似的问题,但没有找到我的问题的解决方案
我们的网络项目环境使用:
- 项目清单
- yii 框架(Zend Engine v2.3.0)
- php 5.3.8
- 服务器操作系统 Fedora15
- java 1.6.0_22
- Apache Batik 1.7 java 库
- libpng 2:1.2
我们的项目生成动态 pdf 文档(使用 Zend Pdf 类)。
PDF 生成大约需要10 秒才能完成大约2 个页面,其中包括 2 个 png 图像(以 svg 格式发送 POST 数据的图表,java 将他(svg)转换为 png 图像;在使用 highcharts js-lib 生成的网络图表上,到 PNG )。
我们需要加快生成过程。
我们代码的某些部分:
使用java将svg转换为png:
明天我将尝试在服务器上安装一些 jpg-lib,并尝试在项目中将 png 替换为 jpg。
如果你需要一些额外的信息 - 让我知道,我给你。
有人可以帮助我吗?我真的不知道该怎么做,我已经尝试了我所知道的一切。
非常感谢您的任何帮助或建议!!