标签: libpng

Python matplotlib和libpng不兼容问题

我真的很痛苦这个问题.
最初,在使用matplotlib绘制内容后,我可以轻松保存图像.
但是,安装scipy之后,我再也无法保存我的图像了.
(我使用pip安装了matplot和scipy.)
我试图查找一些信息,但我仍然无法解决问题.
我的操作系统是Mac OS X Lion(10.7)

我认为以下链接是一些相关问题

https://github.com/ipython/ipython/issues/2710
Matplotlib python savefig运行时错误python 3.2.3
matplotlib和libpng问题ipython notebook
libpng15静态链接问题

看来如果我可以重新链接库或设置DYLD_LIBRARY_PATH(实际上我不知道那是什么......)

或许我必须重新编译一些东西?
顺便说一下,我对基于linux的系统很新,所以如果有人能以一种相对简单的方式解释它,那将是非常好的.非常感谢你.

以下是一些错误消息:

libpng warning: Application was compiled with png.h from libpng-1.5.4
libpng warning: Application  is  running with png.c from libpng-1.4.10
libpng warning: Incompatible libpng version in application and library
---------------------------------------------------------------------------
RuntimeError                              Traceback (most recent call last)
/Library/Python/2.7/site-packages/matplotlib/backends/backend_macosx.pyc in save_figure(self, *args)
    476         if filename is None: # Cancel
    477             return
--> 478         self.canvas.print_figure(filename)
    479 
    480     def prepare_configure_subplots(self):

/Library/Python/2.7/site-packages/matplotlib/backend_bases.pyc in print_figure(self, filename, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib libpng

2
推荐指数
1
解决办法
4394
查看次数

用C++编写PNG

我试图在Windows 7 64位上使用C++和Visual Studio Express 2013将一些数据写入PNG文件.我明白要做到这一点,我需要使用外部库,但这里是我遇到一些困难的地方.

我尝试使用LodePNG - 它看起来简单,轻巧,易于使用.问题是,它很简单,并且似乎需要某种像素格式的数据与我所拥有的不匹配.我可以修改我的数据以使其与LodePNG兼容,但我更喜欢使用像libpng这样的库,并且具有更大的灵活性.

但是,我不了解构建或链接库的第一件事,并且libpng已经被证明是一个绝对的噩梦.我尝试按照本指南,设法生成"libpng.lib"和"png.h",但是当我尝试将这些文件包含在我的项目中时(我将两个文件放在我的项目目录中,将"png.h"添加到我的项目中)头文件并将"libpng.lib"添加到链接器的"附加依赖关系"字段中),我收到了大量的构建错误,特别是:

error C1083: Cannot open include file: 'pnglibconf.h': No such file or directory
Run Code Online (Sandbox Code Playgroud)

任何人都可以请教我如何安装libpng,指导我一个关于这个主题的好指南(我很惊讶那里没有指南...),或推荐一个不同的(轻量级,易于安装)PNG图书馆?我在这里疯了.

c++ png libpng

2
推荐指数
1
解决办法
1万
查看次数

使用PHP在html文档中显示带有原始图像数据的PNG

使用此代码,我尝试从JSON创建签名图像,然后直接在浏览器中显示图像而不保存它.我遇到的问题是我想在HTML文档中显示此图像,因此标题信息已被修改.有没有办法在HTML文档中显示原始图像数据中的图像?或者围绕这个问题的任何其他方式?

$json = $ticket->sig; // get the json representing the signature
$img = sigJsonToImage($json);  //get image resource from json

    // HERE I WANT TO DISPLAY THE IMAGE BUT GET Cannot modify header information
header('Content-Type: image/png');
imagepng($img, null, 0, PNG_NO_FILTER);
imagedestroy($img);
Run Code Online (Sandbox Code Playgroud)

html php png libpng

2
推荐指数
1
解决办法
5218
查看次数

OpenCV/Tesseract:如何用GDI + Bitmap替换libpng,libtiff等(通过GDI +加载到cv :: Mat)

我正在开发一个使用OpenCV和Tesseract的项目.这两个库都基于libpng,libtiff,libjpeg等来加载/保存图像文件.

但Tesseract(基于Leptonica)使用这些具有不兼容参数的库的旧版本.所以我不能为两者使用相同的图像库:OpenCV和Tesseract.

因此,如果我动态编译我的项目,我将不得不用我的项目提供一堆DLL.如果我静态编译,我会产生一个巨大的输出文件,炸成几兆字节.

这是UGLY.我不希望这样.

另一个问题是几乎所有开源项目 - 主要是在Linux/MAC世界中开发 - 如果在Windows上编译,则不支持Unicode.在内部都传递std::stringfopen().在Linux上,使用UTF8编码路径的解决方法可能会起作用,但在Windows上它不会.因此,日语用户无法在具有日语名称的文件夹中打开图像文件.虽然微软已经在1990年代早期做出了巨大努力,将整个Windows NT操作系统转换为100%兼容Unicode,但20年后的大多数开源项目(如libpng)仍然不支持传递路径std::wstring.

重要信息:OpenCV命令imread(),imwrite()如果要创建支持日语或中文的国际项目,则不得在Windows上使用!

所以,我想要的是:从我的项目中完全消除libtiff,libpng,libjpeg等:

在OpenCV评论中:

// #define HAVE_JASPER
// #define HAVE_JPEG
// #define HAVE_PNG
// #define HAVE_TIFF
etc..
Run Code Online (Sandbox Code Playgroud)

在Tesseract/Leptonica:

#define  HAVE_LIBJPEG   0
#define  HAVE_LIBTIFF   0
#define  HAVE_LIBPNG    0
#define  HAVE_LIBZ      0
#define  HAVE_LIBGIF    0
#define  HAVE_LIBUNGIF  0
etc..
Run Code Online (Sandbox Code Playgroud)

..并使用GDI +代替,它是Windows操作系统的一部分,支持加载/保存BMP,TIF,PNG,JPG,GIF.此外,GDI +与Unicode兼容.

我知道这可以通过几行代码来完成,但OpenCV项目中缺少这样一个有用的类.我的第一次试验表明,这并不像第一次看起来那样微不足道,因为必须进行大量的转换.

是否有为此目的而制作的课程?

c++ unicode opencv gdi+ libpng

2
推荐指数
1
解决办法
3216
查看次数

libpng12.so.0:无法打开共享对象文件 - genymotion

每次我尝试在我的 Fedora 机器上打开我的 genymotion 我总是得到错误

libpng12.so.0: cannot open shared object file
Run Code Online (Sandbox Code Playgroud)

在互联网上搜索后,我看到了一个关于使用的答案yum provides */libpng12.so.0 ,终端提示我:

libpng12-1.2.50-5.fc20.i686 : Old version of libpng, needed to run old binaries
Repo        : fedora
Matched from:
Filename    : /usr/lib/libpng12.so.0



libpng12-1.2.50-5.fc20.x86_64 : Old version of libpng, needed to run old
                              : binaries
Repo        : fedora
Matched from:
Filename    : /usr/lib64/libpng12.so.0



libpng12-1.2.50-6.fc20.i686 : Old version of libpng, needed to run old binaries
Repo        : updates
Matched from:
Filename    : /usr/lib/libpng12.so.0



libpng12-1.2.50-6.fc20.x86_64 : Old version of libpng, …
Run Code Online (Sandbox Code Playgroud)

fedora libpng genymotion

1
推荐指数
1
解决办法
7909
查看次数

libpng 1.616 在 VS2012 C++ 中的 png_read_png 上崩溃

我的是win7 64位家庭版。我的所有项目都设置为使用 C++ 在 32 位环境中构建。我已经使用 MDd 运行时在调试模式下成功构建了 libpng。我有两个正在进行的项目。我的第一个项目是在 VS2010 中,第二个项目是在 VS2012 中。在我的计算机中,我创建了一个环境变量,设置为该库的路径,以使我的项目中的链接更容易。我的两个项目都使用 MDd 以及多字节,这与 libpng 使用的相同。我的所有路径和依赖项都是正确的。我还将 libpng16.dll 复制到两个项目中与其构建的可执行文件位于同一目录中。我可以成功编译和构建这两个项目。我的 VS2010 项目运行并渲染加载的 PNG 图形,但我在 VS2012 中的项目却不能。当我调用 png_read_png 抛出和未处理的异常时,它崩溃了:

check = fread( data, 1, length, png_voidcast( png_FILE_p, png_ptr->io_ptr ) );
Run Code Online (Sandbox Code Playgroud)

在 pngrio.c 内。给出这个错误:

First-chance exception at 0x77308E19 (ntdll.dll) in Game_debug.exe: 0xC0000005: 
Access violation writing location 0x00000014.
Run Code Online (Sandbox Code Playgroud)

问题不在我的源代码中,因为我知道它在我的 VS2010 项目中工作,并且我使用相同的实现在我的 VS2012 项目中加载 png。我不确定我链接到的库是在 VS2010 中构建的,或者 VS2010 构建的库中是否有一些我的 VS2012 项目不喜欢的命令行/编译器设置。我已经阅读了 png 文档并在网上搜索了几个小时,但似乎找不到任何相关内容。任何形式的帮助、提示、指示或建议都会对我有很大帮助。

c++ access-violation first-chance-exception libpng visual-studio-2012

1
推荐指数
1
解决办法
1552
查看次数

OpenCV 在图像解码时剥离 sRGB 配置文件 Python

我正在阅读从互联网上获取的图像,然后立即读入 python 中的 OpenCV,如下所示:

# read in image as bytes from page
image = page.raw_stream.read()
frame = cv2.imdecode(np.asarray(bytearray(image)), 0)
Run Code Online (Sandbox Code Playgroud)

我收到 libpng 警告:

libpng warning: iCCP: known incorrect sRGB profile
Run Code Online (Sandbox Code Playgroud)

如何在读取之前剥离 sRGB 配置文件?人们建议在阅读 png 文件之前通过 imagemagick 来完成此操作,但这对我来说是不可能的。有没有办法直接在Python中做到这一点?

编辑:

如果我使用https://uploadfiles.io/m1w2l上的文件运行并使用以下代码,我无法获取下面答案中的代码来解决我的问题:

import cv2
import numpy as np

with open('data/47.png', 'rb') as test:
   image = np.asarray(bytearray(test.read()), dtype="uint8")
   image = cv2.imdecode(image, cv2.IMREAD_COLOR)
Run Code Online (Sandbox Code Playgroud)

我收到同样的警告

opencv image-processing libpng srgb python-3.x

1
推荐指数
1
解决办法
3890
查看次数

无法打开共享对象文件 libpng12.so.0

我正在尝试在以下机器上运行 Quartus 13.0:

parrot 4.18.0-parrot10-amd64 #1 SMP Debian 4.18.10-1parrot10 (2018-10-06) x86_64 GNU/Linux.
Run Code Online (Sandbox Code Playgroud)

我已经完成了 Quartus 13.0 的安装,当我尝试执行它时出现以下错误:

quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我已经阅读了堆栈溢出和其他网站中的所有相关问题,但没有人为我工作。

在寻找那个文件时,我找到了它。我试图做一个硬链接,但它也不起作用。搜索结果:

??[pepbd@parrot]?[~]
???? $ls -ld $(locate -r libpng.*\.so.*)
lrwxrwxrwx 1 root root     19 nov 19 17:09 /usr/lib/x86_64-linux-gnu/libpng16.so.16 -> libpng16.so.16.34.0
-rw-r--r-- 1 root root 210864 jul 10 13:17 /usr/lib/x86_64-linux-gnu/libpng16.so.16.34.0
-rw-r--r-- 1 root root  18272 oct 14 21:59 /usr/lib/x86_64-linux-gnu/vlc/plugins/codec/libpng_plugin.so
Run Code Online (Sandbox Code Playgroud)

shared-libraries debian-based libpng quartus parrot-os

1
推荐指数
1
解决办法
8798
查看次数

0
推荐指数
1
解决办法
2416
查看次数

jpeg或png哪个较慢?

是否想知道,这两种类型的图像(JPEG或PNG)的解压缩过程是否存在显着差异?

c c++ libjpeg libpng

0
推荐指数
1
解决办法
1067
查看次数

OpenGL的; 重叠的Alpha透明粒子

我正在用C语言编写一个OpenGL程序,它实现了alpha透明的Bill Boarding粒子,它通过pnglib使用PNG(透明度)作为纹理.但是,我发现粒子的透明区域仍然会替换它前面的粒子.换句话说,新调用的粒子虽然在某些区域是透明的,但是完全重叠在它们之前调用的一些粒子,相反,那些先前称为粒子的粒子应该透过透明度来显示.

为了可视化它所具有的效果,我附上一些图像来显示问题:

最初我称这些粒子从最老到最新: 正视图

但是,当视图更改时,重叠效果显而易见: 后视图

当我决定撤销通话顺序时,我得出相反的结论: 后视图订单已撤消 前视图顺序已反转

我认为解决这个问题的方法是将粒子从最远离相机调到最近.然而,遍历每个活动粒子,从最远到最近的顺序排序,然后每个显示帧调用每个粒子,计算量很大.我希望找到一个更简单,更有效的解决方案.我已经试过了,glBlendFunc()但没有sfactordfactor似乎工作.

c opengl transparent particles libpng

-1
推荐指数
1
解决办法
256
查看次数

png.h库C中数据类型“png_byte”的声明是什么?

在这里,在 GitHub 存储库中给出了 png.h 库源代码(https://github.com/LuaDist/libpng/blob/master/png.h)。但也有,他们直接使用数据类型png_byte。我正在寻找这种数据类型的声明。

c libpng

-1
推荐指数
1
解决办法
1375
查看次数