tiff dcm-tiff文件转格式,希望转成dcm格式的

问题描述

tiff文件转格式,希望转成dcm格式的

//TIFFSetDirectory(tiff,0);//我们打开第一幅图,也就是第0帧,如果是第1帧,第二个参数写1,由此类推。因为Windows下图像基本//操作都是以BMP格式进行,我们读出该帧并转成BMP格式。
char* szFileName = "C:UsersAdministratorDesktoptest.tiff";
TIFF* tiff = TIFFOpen(szFileName, "r"); //打开Tiff文件,得到指针,以后所有的操作都通过指针进行

int nTotalFrame = TIFFNumberOfDirectories(tiff);    //得到图像的总帧数

char *dtitle;

// TIFFGetField(tiff,TIFFTAG_PAGENAME,&dtitle);
//得到该帧的名字,存放在dtitle中。

int width,height;
TIFFGetField(tiff, TIFFTAG_IMAGEWIDTH, &width);  //得到宽度
TIFFGetField(tiff, TIFFTAG_IMAGELENGTH, &height);//得到高度

float resolution = max(width,height);

uint16 bitspersample = 1;
uint16 samplesperpixel = 1;

TIFFGetField(tiff, TIFFTAG_SAMPLESPERPIXEL, &samplesperpixel);
//每个像素占多少机器字,24位图samplesperpixel应该等于3。
TIFFGetField(tiff, TIFFTAG_BITSPERSAMPLE, &bitspersample);
//每一个机器字长,这里应为8。

uint16 bitsperpixel = bitspersample * samplesperpixel;
//算出每个像素占多少bit,24位图,值为24
DWORD dwBytePerLine = (width*bitsperpixel+31)/32 *4;
//由上面几个参数算出图像每行所占字节(BYTE)数。

DWORD64 dwLeng = height*dwBytePerLine;//在内存里存放这帧图像数据所需要的长度
BYTE* pData = new BYTE[dwLeng];    //为存放数据分配内存空间

uint32* raster;
uint32 *row;
raster = (uint32*)_TIFFmalloc(width * height * sizeof (uint32));
TIFFReadRGBAImage(tiff, width, height, (uint32*)raster, 0);
//以上几行读出该帧数据,保存到raster中。

row = &raster[0];
LPBYTE bits2 = pData;
for (int y = 0; y < height; y++)
{
    LPBYTE bits = bits2;
    for (int x = 0; x < width; x++)
    {
        *bits++ = (BYTE)TIFFGetB(row[x]);
        *bits++ = (BYTE)TIFFGetG(row[x]);
        *bits++ = (BYTE)TIFFGetR(row[x]);
    }
    row += width;
    bits2 += dwBytePerLine;
}
_TIFFfree(raster);

这样出来的图像数据不对,只有一部分,啥原因啊

时间: 2025-01-21 08:16:50

tiff dcm-tiff文件转格式,希望转成dcm格式的的相关文章

加密-公钥(XML格式)转换成PEM格式

问题描述 公钥(XML格式)转换成PEM格式 iOS开发,加密方式是RSA,在请求数据后返回的格式是XML格式的公钥,但是要转换成PEM格式才可以参于编译,我知道有一个网站https://superdry.apphb.com/tools/online-rsa-key-converter给大家做个参考,但是这往往是不太安全的,我需要可将xml格式的公钥转换成pem格式.查了4.5天的资料,难道真的没有这种方法吗? 转之前: xA7SEU+e0yQH5rm9kbCDN9o3aPIo7HbP7tX6W

java如何将视频格式的转换成MP4格式

问题描述 java如何将视频格式的转换成MP4格式 如题,java怎么把.avi,.flv,.mov,.flw....等格式的视频转换成MP4, 有什么比较好的工具,ffmpeg网上全是将其他转换为flv的,但是flv手机 端不兼容,求方案.... 解决方案 我把我参考的源码demo地址:http://download.csdn.net/detail/sweetloveft/7508747 解决方案二: 如何将qlv格式的腾讯视频转换为mp4格式 解决方案三: 参照:http://blog.cs

python将json格式的数据转换成文本格式的数据或sql文件

python如何将json格式的数据快速的转化成指定格式的数据呢?或者转换成sql文件? 下面的例子是将json格式的数据准换成以#_#分割的文本数据,也可用于生成sql文件. [root@bogon tutorial]# vi json2txt.py #-*- coding: UTF-8 -*- import json data = [] with open('./tencent_test.json') as f: for line in f: data.append(json.loads(l

ppt格式怎么转换成swf格式

往往我们在做演示都是用到幻灯片,但是有的时候用flash格式颜色效果可能更好,发布PPT,如果有演示,更直观,不仅能增加访问率,更能提高下载量,那如何将ppt格式直接转换成flash动画演示呢? 工具/原料 · powerpoint幻灯片 · iSpring Free 6.2.0 工具 32位下载 64位下载 方法/步骤 1. iSpring Free 是一款免费的 PowerPoint 转 Flash/SWF 工具,可以轻松地将 PPT 演示文档转换为对 Web 友好的 Flash 影片格式(

手机电话号码导出来的VCF格式怎么转换成EXCEL格式?

  1.手机与电脑首先需要安装360手机助手,将手机用USB数据线连接电脑,接着依次打开"手机设置"--"开发者选项"--打开"开启开发者选项"与"USB调试"开关,然后打开电脑360手机助手左上角连接到手机 2.360手机助手连接成功手机后,点击360手机助手的"联系人",接着点击需要导出的电话的联系人,点击360手机助手的"导入/导出",然后会出现导出的各种格式,选择好自己需要导出的

CST格式日期转成yyyy-MM-dd格式

Java代码   String text = "Fri Apr 24 19:00:58 CST 2015";   DateFormat formate1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   DateFormat formate2 = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy",Locale.ENGLISH);   Date d

php将bmp格式图片转换成jpg格式程序

 代码如下 复制代码 function imagebmp($img,$file="",$rle=0) { $colorcount=imagecolorstotal($img); $transparent=imagecolortransparent($img); $istransparent=$transparent!=-1; if($istransparent) $colorcount--; if($colorcount==0) {$colorcount=0; $bitcount=24

php将数组转换成csv格式文件输出的方法

 本文实例讲述了php将数组转换成csv格式文件输出的方法.分享给大家供大家参考.具体实现方法如下: <?php $sales = array( array('east','2005-01-01','2005-02-01',12.54), array('west','2005-01-01','2005-02-01',546.33), array('south','2005-01-01','2005-02-01',93.26), array('north','2005-01-01','2005-0

js时间戳怎么转成日期格式

问题是这样的 /Date(1354116249000)/ 这样的格式怎么转成时间格式 这是从C#的Datatime格式通过Json传到Js里面的, 下面是我们的提供的方法 js需要把时间戳转为为普通格式,一般的情况下可能用不到的, 下面先来看第一种吧 结果是 2010年12月23日 10:53 第二种 如果你想得到这样格式的怎么办呢? 2010-10-20 10:00:00 看下面代码吧 也可以这样写的 function formatDate(now) { var year=now.getYea