libjpeg 版本6b jpeg_stdio_src 与 jpeg_mem_src

2024-02-10

我正在使用 Libjpeg 版本 6b。在版本 8 中,他们有一个很好的函数,可以从内存中读取数据,称为jpeg_mem_src(...),不幸的是版本。 6b没有这个功能。

我可以使用什么来直接从内存读取压缩数据?我所看到的只是jpeg_stdio_src它从硬盘读取。


写你自己的...

/* Read JPEG image from a memory segment */
static void init_source (j_decompress_ptr cinfo) {}
static boolean fill_input_buffer (j_decompress_ptr cinfo)
{
    ERREXIT(cinfo, JERR_INPUT_EMPTY);
return TRUE;
}
static void skip_input_data (j_decompress_ptr cinfo, long num_bytes)
{
    struct jpeg_source_mgr* src = (struct jpeg_source_mgr*) cinfo->src;

    if (num_bytes > 0) {
        src->next_input_byte += (size_t) num_bytes;
        src->bytes_in_buffer -= (size_t) num_bytes;
    }
}
static void term_source (j_decompress_ptr cinfo) {}
static void jpeg_mem_src (j_decompress_ptr cinfo, void* buffer, long nbytes)
{
    struct jpeg_source_mgr* src;

    if (cinfo->src == NULL) {   /* first time for this JPEG object? */
        cinfo->src = (struct jpeg_source_mgr *)
            (*cinfo->mem->alloc_small) ((j_common_ptr) cinfo, JPOOL_PERMANENT,
            SIZEOF(struct jpeg_source_mgr));
    }

    src = (struct jpeg_source_mgr*) cinfo->src;
    src->init_source = init_source;
    src->fill_input_buffer = fill_input_buffer;
    src->skip_input_data = skip_input_data;
    src->resync_to_restart = jpeg_resync_to_restart; /* use default method */
    src->term_source = term_source;
    src->bytes_in_buffer = nbytes;
    src->next_input_byte = (JOCTET*)buffer;
}

然后使用它:

...
    /* Step 2: specify data source (eg, a file) */
    jpeg_mem_src(&dinfo, buffer, nbytes);
...

其中 buffer 是指向包含压缩 jpeg 图像的内存块的指针,nbytes 是该缓冲区的长度。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

libjpeg 版本6b jpeg_stdio_src 与 jpeg_mem_src 的相关文章

随机推荐

  • 搜索和替换:正确的快捷方式是什么?

    非常简单的困境 用户需要能够在大段文本中进行搜索和替换 执行此操作的代码是小菜一碟 那里没有问题 奇迹般有效 别为此伤透脑筋 就这样解决了 这不是问题 No problem is defining a good shortcut for t
  • iOS 6 中完成块的dispatch_get_current_queue() 的替代品?

    我有一个接受块和完成块的方法 第一个块应该在后台运行 而完成块应该在调用该方法的任何队列中运行 对于后者我总是使用dispatch get current queue 但似乎它在 iOS 6 或更高版本中已被弃用 我应该用什么来代替 在调用
  • 快速过滤数组

    如何通过一个或多个标志过滤一组自定义对象 let flags New product Season 2014 Season 2015 Product available 使用一个标志或多个静态标志很容易 let filteredArray
  • 当 order by 与 where 子句不同时,有什么方法可以避免文件排序?

    我有一个非常简单的查询 表类型 InnoDb 并且EXPLAIN说 MySQL 必须执行额外的操作来找出如何按排序顺序检索行 SELECT FROM comments WHERE commentable id 1976 ORDER BY c
  • 多次激活像素以进行 Facebook 像素跟踪

    我正在使用从 Facebook 获得的一些 Javascript 来执行 跟踪 像素 但是 当我使用 Facebook Pixel Helper 查看一切是否正常工作时 它表明存在错误 并且像素被多次激活 它没有给出如何解决此类错误的说明
  • 以“主从”方式将 DataGridView 绑定到实体

    我正在尝试在两个 DataGridView 之间建立主从关系 我有一个 EntityModel 其中有两个实体通过 ClientCommissions 关联连接 它们是从现有数据库生成的 并且具有运行良好的导航属性 证明 使用提到的 Ent
  • 使用 TinyMCE 突出显示文本

    目前我有一个使用 TinyMCE 的文本区域 http fiddle tinymce com D2gaab http fiddle tinymce com D2gaab 我想突出显示左大括号 右大括号之间的文本 有人知道这是否可能 以及我该
  • 在 CSS 中使用非常具体的选择器有优势吗?

    我知道在 jQuery 中 使用选择器时更具体是有利的 这样 jQuery 就不必遍历整个 DOM 来找到您要查找的内容 例如 span description 比仅仅更好 description 如果我知道description类仅适用于
  • Pandas - 基于列对行进行分组,并用非空值替换 NaN

    我正在尝试基于目标 group by 列 在数据帧上使用字符串创建一些聚合 假设我有以下包含 4 列的数据框 我想根据列 Col1 对所有行进行分组 在这种情况下 o NaN 组的值不为空 期望的输出是这样的 我也尝试使用普通的 impor
  • 从计算着色器中的 RWTexture2D 加载

    据我所知 HLSL 着色器模型 5 0 存在一个限制 即无法从非标量类型的 RWTexture2D 资源加载数据 也就是说 以下行为是非法的 RWTexture2D
  • 与XBoard(国际象棋引擎)通信(C++/C)

    我只是在尝试制作一个基本的国际象棋引擎 我从中得到了很多建议http web archive org web 20070704121716 http www brucemo com compchess programming alphabe
  • 防止在 ASP.NET 输入字段中按 Enter 进行回发

    我在 javascript 和 asp net 中的 Enter 键有问题 我有一个像这样的控件 带有一个 textchanged 事件 它会进行查找 但我想在用户输入时控制它
  • 从 Base 向下转换为 Derive Segmentation 错误

    我正在学习动态转换并搜索了很多网站 我得出的结论是动态转换可以从基础转换为派生并派生到基础 但是 当我从 Base 进行强制转换以派生时 它会出现分段错误 这是代码 我期望从 A 中得到一个 但即使在铸造之后它也给了我一个 D class
  • 如何使用Dojo动态添加div?

    我有以下静态 div div div 我想使用 dojo 在 div1 中动态添加一个 id 为 div1 1 的 div 我该怎么做 您可以仅使用 Dojo Base 来完成此操作 如果您使用 trunk 或 Dojo 1 3 则无需包含
  • Android 深度链接到应用程序

    我正在尝试创建一个可以通过电子邮件发送的链接 当在安装了我的应用程序的 Android 设备上打开该链接时 该链接将自动打开我的应用程序中的正确页面 我已经通过几种不同的方式部分地解决了这个问题 但发现了一些问题 我想知道是否有人有解决方案
  • pagehide 和 pageshow 事件在 ios chrome 上无法按预期工作

    Apple 文档在此处列出了可用的 iOS 浏览器事件 https developer apple com library archive documentation AppleApplications Reference SafariWe
  • 在哪里可以找到以前版本的 Azure Service Fabric SDK?

    我需要找到 Azure Service Fabric SDK 的较旧 SDK 版本 准确地说是 2 1 163 它不再在 Web Platform Installer 上可用 并且在其他地方也找不到它 有人可以指点我吗 非常感谢 这些是链接
  • “调用布尔值的成员函数 fetch_assoc()”[重复]

    这个问题在这里已经有答案了 我看到了很多关于此错误的问题 但似乎没有一个答案可以解决我的问题 抱歉 如果我错过了一个 我的脚本一直给我一个错误提示 调用布尔值的成员函数 fetch assoc 但我不明白这是怎么回事 Both mysqli
  • jQuery 问题 - 未捕获的类型错误:无法读取未定义的属性“浏览器”

    我正在尝试向网站添加滑块 当我在本地测试时 它在标准 html 文件中工作正常 但是当我尝试将其传输到 WordPress 网站时 我不断收到此错误 未捕获的类型错误 无法读取未定义的属性 浏览器 它指向问题代码中的第 11 行 isIE
  • libjpeg 版本6b jpeg_stdio_src 与 jpeg_mem_src

    我正在使用 Libjpeg 版本 6b 在版本 8 中 他们有一个很好的函数 可以从内存中读取数据 称为jpeg mem src 不幸的是版本 6b没有这个功能 我可以使用什么来直接从内存读取压缩数据 我所看到的只是jpeg stdio s