c得到像素宽度(tiff)?

时间:2013-06-07 05:09:10

标签: c# c++ c pixel tiff

我有很多tiff图像文件,我需要立即更改其名称(按宽度和高度)。

例如:  asdasd.tiff(尺寸600 x 700) - > 600x700.tiff

但有一些问题:

  • 我正在使用linux,但我必须为Windows执行此操作
  • 我不知道c,c ++或c#,但我必须使用“.exe”程序
  • “。exe”程序,因为我们想要这样做,“一键,所有名称都被更改”,在Windows ...

如何在c中学习tiff文件的像素宽度和高度?

(我的问题是学习文件的像素大小,我可以在获得像素大小后重命名。重命名不是问题,但我怎么能得到一个tiff文件的像素宽度和高度?!:(!)

好的,这是针对bmp文件:

#include "stdio.h"
#include "stdlib.h"

main()
{
FILE* f = fopen("bim1.bmp", "rb");
unsigned char info[54];
fread(info, sizeof(unsigned char), 54, f); // read the 54-byte header

int width = *(int*)&info[18];
int height = *(int*)&info[22];

printf("width : %d \n", width);
printf("height : %d \n", height);

fclose(f);
}

我会为tif文件编辑它。

2 个答案:

答案 0 :(得分:1)

TIFF 6.0 specification描述了文件格式。

TIFF的字节0-1指定文件中数据的字节顺序。 (第13页:图像文件标题)

偏移4-7包含第一个图像文件目录的偏移量(以字节为单位)。偏移量采用字节0-1指定的字节序。 (第13页:图像文件标题)

映像文件目录(从文件中的指定位置开始,名称目录在这种情况下不指示文件系统目录)包含许多标记值。 (第14页:图像文件目录)

您必须扫描标签列表,直到遇到标签256(图像宽度)和257(图像高度)。 (第18页行和列)

答案 1 :(得分:0)

也许这是一个很好的应用程序:http://regexrenamer.sourceforge.net/ 您需要一些正则表达式的知识才能将源名称与命运名称相匹配。