vs2019 libtiff安装及应用

本文介绍了如何在VisualStudio2019环境下下载、解压并编译libtiff库,以及如何配置项目以读取16位灰度值的TIF图片,还提到了遇到的常见问题和解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.下载libtiff

libtiff 下载地址下载一个版本,这里选择4.0.8.

在这里插入图片描述

2.解压并编译

  • 解压至目的地址:
E:\cpp_lib\tiff-4.0.8

在这里插入图片描述

  • 编译
    使用vs自带工具进行编译。

这里要选择x86_x64 Cross Tools Command Prompt for VS 2019

在这里插入图片描述
点击输入以下命令:

cd /d E:\cpp_lib\tiff-4.0.8
nmake /f makefile.vc

在这里插入图片描述

3.查看编译结果

在这里插入图片描述

4.demo测试

新建一个cpp项目。

4.1 配置项目

  • 配置包含目录

在这里插入图片描述

  • 配置库目录
    在这里插入图片描述
  • 添加库文件
    在这里插入图片描述

4.2 读取16位灰度值的tiff图片

#include<iostream>
using namespace std;
#include "tiffio.h"
int main()
{
	int m_ImWidth, m_ImHeight;
	uint16_t bits_per_sample, samples_per_pixel;

	TIFF* tif = TIFFOpen("E:/1.tif", "r");
	TIFFGetField(tif, TIFFTAG_IMAGEWIDTH, &m_ImWidth);
	TIFFGetField(tif, TIFFTAG_IMAGELENGTH, &m_ImHeight);
	TIFFGetField(tif, TIFFTAG_BITSPERSAMPLE, &bits_per_sample);
	TIFFGetField(tif, TIFFTAG_SAMPLESPERPIXEL, &samples_per_pixel);

	cout << m_ImWidth << " " << m_ImHeight << endl;
	cout << bits_per_sample << " " << samples_per_pixel << endl;

	size_t scanline_size = TIFFScanlineSize(tif);
	cout << " scanline_size:" << scanline_size << endl;
	uint16_t* m_ImFFT0 = (uint16_t*)_TIFFmalloc(m_ImWidth * m_ImHeight* bits_per_sample);

	for (uint32_t row = 0; row < m_ImHeight; row++)
	{
		TIFFReadScanline(tif, m_ImFFT0 + row * m_ImWidth, row);
	}
	TIFFClose(tif);
    return 0;
}

结果为:

3136 2704

5. 遇到的bug

使用libtiff库出现无法解析的外部符号的错误,可参考vs c++ debug 之路

参考文献

[1] libtiff 下载地址
[2] C++ libtiff库VC++版本编译使用方法x86,x64均有效

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

外卖猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值