如何使用 boost.gil 解析 tiff 图片并返回像素

<2022-06-11 周六>

如何使用boost.gil解析tiff图片并返回像素

这是我的测试代码,能工作,我觉得比较有用,代码片断贴在这里:

#include <boost/gil.hpp>
#include <boost/gil/extension/io/tiff.hpp>
#include <boost/gil/extension/numeric/sampler.hpp>
#include <boost/gil/extension/numeric/resample.hpp>

const int PIXELCNT = 4;

if (lpArgs[3] == 3) {
   
  namespace bg = boost::gil;
  bg::rgba8_image_t img;
  bg::read_image(lpimgPath, img, bg::tiff_tag{
   });
  bg::rgba8_image_t out(*pDestW, *pDestH);
  bg::resize_view(bg::const_view(img), bg::view(out),
    bg::bilinear_sampler{
   });

  size_t size = *pDestW * *pDestH * PIXELCNT;
  unsigned char* ret = new unsigned char[size];
  int i = 0;
  for (int y = 1; y < *pDestH; ++y) {
   
    bg::rgba8_view_t::x_iterator it = out._view.row_begin(y);
    for (int x = 0; x < *pDestW; ++x, ++i, ++it) {
   
      ret[PIXELCNT * i + 0] = *((unsigned char*)it + 3);
      ret[PIXELCNT * i + 1] = *((unsigned char*)it + 2);
      ret[PIXELCNT * i + 2] = *((unsigned char*)it + 1);
      ret[PIXELCNT * i + 3] = *((unsigned char*)it + 0);
    }
  }
  return ret;
}

另外,在debian虚拟机上我用的是预装的boost-1.67,版本有点低,原以为低版本boost.gil不应该更稳定嘛,况且还是debian精挑细选的稳定版本,其实这个版本的boost.gil根本是不能用的,因为它没有boost/gil/extension/numeric/sampler.hpp等相关头文件,可以看boost-1.67的文档,会提示你去下载缺失的扩展部分,但是好像是adobe网站吧,已经不提供这些扩展部分的下载了,这是我遇到的第一个坑。

而且即使你下载了这些扩展部分,由于boost.gil的更新较大,代码不能通用,所以我最后选择了最新的boost-1.79版本,因为boost.gil只需要头文件,不需要链接库,所以只要debian的编译器支持即可。

相关推荐

  1. 如何使用 boost.gil 解析 tiff 图片返回

    2024-02-23 10:14:01       50 阅读
  2. opencv 存储值为浮点数的图像 (.tiff)

    2024-02-23 10:14:01       35 阅读
  3. 调整图片尺寸工具。

    2024-02-23 10:14:01       58 阅读
  4. c 生成16×16个点的rgb图片转为yuv420P 格式

    2024-02-23 10:14:01       53 阅读
  5. OpenCV图像值统计

    2024-02-23 10:14:01       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 10:14:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 10:14:01       101 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 10:14:01       82 阅读
  4. Python语言-面向对象

    2024-02-23 10:14:01       91 阅读

热门阅读

  1. 智能门锁开发之需要具备的安全保护技术

    2024-02-23 10:14:01       48 阅读
  2. GC垃圾回收算法

    2024-02-23 10:14:01       46 阅读
  3. 参数替换之${parameter+default}和${parameter:+default}

    2024-02-23 10:14:01       37 阅读
  4. Visual Studio快捷键记录

    2024-02-23 10:14:01       49 阅读
  5. 如何基于prompt来构建大模型AI产品?

    2024-02-23 10:14:01       53 阅读
  6. 数据结构:顺序表

    2024-02-23 10:14:01       48 阅读
  7. 设计模式-原型模式

    2024-02-23 10:14:01       46 阅读
  8. FFmpeg部分数据结构简介

    2024-02-23 10:14:01       40 阅读