标签: libjpeg

如何使用libjpeg从std :: istream中读取JPEG?

libjpeg可以从FILE*缓冲区读取JPEG数据.我的数据来自于std::istream.我可以将整个读std::istream入缓冲区以与libjpeg一起使用,但我宁愿直接从libjpeg中读取,std::istream如果可能的话.如何才能做到这一点?

c++ iostream libjpeg istream

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

从字节数组创建位图,通过libjpeg从JPEG文件解压缩

我使用libjpeg(C库)来解压缩JPEG文件.现在我有一个unsigned char数组.如何在JNI中从该数组创建位图?

java-native-interface android bitmap libjpeg android-ndk

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

用JPEG的Django ImageField问题

我在Django中遇到了PIL(Python图像库)的一个主要问题,并且已经跳过很多环节,到目前为止还没能弄清楚问题的根源是什么.

问题基本上分解为无法通过Django管理员中的ImageField上传JPEG图像.但问题并不像安装libjpeg那么简单.

首先,我安装了PIL(通过Buildout)并在安装后意识到我没有安装libjpeg,因为JPEG支持不可用.

没有自己设置服务器,我只是假设它没有安装,我从源代码编译了libjpeg 8.这最终出现在我的/ usr/local/lib /目录中.我清除了我的Buildout文件并重建了所有内容.这次PIL编译时我有JPEG支持.但我去了Django Admin并尝试通过ImageField上传JPEG而没有运气.我收到了"上传有效图片.您上传的文件不是图片或损坏的图片"错误.就像测试一样,我打开了一个Djano shell并执行以下操作:

> import Image
> i = Image.open( "/absolute_path/file.jpg" )
> print i
<JpegImagePlugin.JpegImageFile image mode=RGB size=940x375 at 0x7F908C529BD8>
Run Code Online (Sandbox Code Playgroud)

这样运行没有错误,并显示PIL能够打开JPEG.

在做了一些阅读之后,我遇到了这个帖子: 是否可以控制apache使用哪些库?

看起来PHP也使用libjpeg并在Django之前加载,因此之前加载libjpeg 6.2.这是在使用lsof时显示的:

COMMAND  PID     USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
apache2 2561 www-data mem    REG  202,1   146032 639276 /usr/lib/libjpeg.so.62.0.0
Run Code Online (Sandbox Code Playgroud)

所以我的想法是我应该使用libjpeg 6.2.所以我删除了位于/ usr/local/lib目录下的libjpeg .重新阅读PIL安装说明后,我意识到我可能没有PIL需要的libjpeg的dev/header文件.所以我也使用aptitude uninstaller(sudo aptitude remove libjpeg62)卸载了libjpeg .然后为了确保我得到了PIL需要的头文件,我使用aptitude安装了libjpeg:(sudo aptget install libjpeg62-dev).

从这里我清理了我的Buildout目录,然后重新构建Buildout,然后重新安装PIL.我再次获得JPEG支持,现在使用libjpeg62.

所以我去Django Admin进行测试.仍然没有JPEG支持.所以我想测试一般的JPEG支持,看看是否没有处理异常,它会抛出什么样的错误.所以在我的主页视图中,我添加了以下代码来打开JPEG图像:

import Image
i = Image.open( …
Run Code Online (Sandbox Code Playgroud)

django django-models libjpeg python-imaging-library

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

用libjpeg写一个jpeg(seg fault)

尝试使用libjpeg从一些原始数据中编写jpeg文件.

它会触发分段错误 jpeg_start_compress()

以下是代码的相关部分:

void write_sub_image(char *filename, int start, int end)
{
    struct jpeg_compress_struct cinfo;
    unsigned char *stride;
    JSAMPROW row_pointer[1];
    unsigned long new_width = end-start;
    int i;
    FILE *fp;

    stride = (unsigned char *)malloc( new_width * 3);

    fp = fopen(filename, "w+");

    jpeg_create_compress(&cinfo);

    jpeg_stdio_dest(&cinfo, fp);

    cinfo.image_width = new_width;
    cinfo.image_height = height;
    cinfo.input_components = 3;
    cinfo.in_color_space = JCS_RGB;

    jpeg_set_defaults(&cinfo);

    jpeg_start_compress(&cinfo, FALSE);

    for (i=0; i<height; i++) {
        memcpy (stride, image + (start + i * width) * 3, new_width * 3);
        row_pointer[0] = …
Run Code Online (Sandbox Code Playgroud)

c linux libjpeg

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

Django OS X错误的JPEG库版本:库是80,调用者期望62 sorl.thumbnail

我在我的Mac上使用本地django的sorl.thumbnail并且一直遇到PIL问题,但今天我终于设法安装了它 - 与libjpeg有些麻烦.

我现在可以上传和使用图像 - 但是我无法使用sorl.thumbnail调整它们的大小.

当我尝试我得到以下错误:

Wrong JPEG library version: library is 80, caller expects 62
Run Code Online (Sandbox Code Playgroud)

有谁知道一个很好的解决方案.

我不知道无论sorl使用什么都需要早期版本的libjpeg或者还有一些幽灵安装的东西仍然留在我的所有尝试用各种方法.

我有 :

  1. PIL 1.1.7
  2. libjpeg 8.

有谁知道一种方法?

libjpeg sorl-thumbnail python-imaging-library

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

图像翻转,使用libjpeg将OpenGL输出为JPEG

下面的代码帮助我使用libjpg将OpenGL输出转换为JPEG图像,但生成的图像垂直翻转...

代码工作完美,但最终图像翻转我不知道为什么?!

unsigned char *pdata = new unsigned char[width*height*3];
    glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, pdata);

    FILE *outfile;
    if ((outfile = fopen("sample.jpeg", "wb")) == NULL) {
        printf("can't open %s");
        exit(1);
      }

    struct jpeg_compress_struct cinfo;
    struct jpeg_error_mgr       jerr;

    cinfo.err = jpeg_std_error(&jerr);
    jpeg_create_compress(&cinfo);
    jpeg_stdio_dest(&cinfo, outfile);

    cinfo.image_width      = width;
    cinfo.image_height     = height;
    cinfo.input_components = 3;
    cinfo.in_color_space   = JCS_RGB;

    jpeg_set_defaults(&cinfo);
    /*set the quality [0..100]  */
    jpeg_set_quality (&cinfo, 100, true);
    jpeg_start_compress(&cinfo, true);

    JSAMPROW row_pointer;
    int row_stride = width * 3;

    while (cinfo.next_scanline < cinfo.image_height) { …
Run Code Online (Sandbox Code Playgroud)

opengl reverse jpeg image libjpeg

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

无法在Centos 6上安装jpegoptim

我想在CentOS 6服务器上安装jpegoptim.我已经下载并解压缩了包但是当我尝试从jpegoptim-1.3.0目录运行./configure时,我收到一条错误消息:

"找不到libjpeg,或者你的版本太旧了(需要v6或更高版本)."

我已经检查过并且我有libjpeg-turbo安装,它应该取代libjpeg.我无法在网上找到关于这个问题的任何内容.我究竟做错了什么?

谢谢,罗布

linux centos libjpeg centos6

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

找到PIL/PILLOW正在使用的libjpeg

我收到一个错误,在两台不同的计算机上读取相同的lena.jpg文件会产生两个不同的校验和.

甚至更奇怪的是,当我运行md5sum lena.jpg时,我在两台机器上获得相同的md5总和,因此文件是相同的.

此外,当我加载png而不是jpeg时,数字似乎匹配.这让我相信Pillow在两台不同的机器上,或者至少是用于读取jpeg文件的库之间存在脱节.

有没有办法检查Pillow正在使用哪个版本的libjpeg(最好是在Python中)?

两台计算机都是Ubuntu,虽然一台是12.04,一台是14.04(我也在Mac上测试了它,并且得到了与14.04盒子相同的值)

python libjpeg python-imaging-library pillow

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

libjpeg 和无损 JPEG

我有一个关于 DICOM 标准和 libjpeg 库的问题。在 DICOM 标准中,除其他外,还有传输语法:

JPEG 无损、非分层、一阶预测(过程 14 [选择值 1]):无损 JPEG 图像压缩的默认传输语法

据我所知,这个传输语法对应于 JPEG-1 Lossles 格式。我开始研究 libjpeg 库,发现它不支持 (?) Lossless JPEG,如下所述:DICOM 中的 JPEG Lossless

此外,在 libjpeg 文档中有一部分说:

不支持的ISO 选项包括: * 分层存储 *无损 JPEG * DNL 标记 * 非整数子采样率

但是,在库代码中,压缩参数结构中jpeg_compress_struct有一个字段:

boolean lossless;       /* TRUE=lossless encoding, FALSE=lossy */
Run Code Online (Sandbox Code Playgroud)

是什么意思?我真的很困惑。任何人都可以描述该库支持哪些 JPEG 标准?此外,如何设置压缩参数以兼容 DICOM JPEG 无损标准?

jpeg dicom libjpeg

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

mingw-w64 中的编译器错误:“未定义对 __getreent 的引用。”

我目前正在尝试在 Windows 中编译 cImg 和 libjpeg 的(噩梦)任务。几个小时后,我终于能够构建 libjpeg 并将其包含在构建过​​程中(cImg 需要 libjpeg 才能与 jpegs 配合使用)。

当我尝试使用 'g++ image.cpp libjpeg.a -lgdi32' 进行编译时,出现以下错误:

'jerror.c:112: undefined reference to `__getreent. The system cannot find the path specified.'
Run Code Online (Sandbox Code Playgroud)

我在谷歌上看过,但似乎没有多少人有同样的问题(而且有答案的人更少)。

我正在使用 mingw-w64 在 Windows 中进行编译。

c++ libjpeg mingw-w64

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