使用C++将二维CAD对象转换为TIFF格式

问题描述:

我想将CAD格式(主要是2D Autocad图纸)导出为TIFF格式。使用C++将二维CAD对象转换为TIFF格式

我可以在互联网上找到的是如何将图像格式转换为TIFF(像素,颜色..)。但我正在寻找使用C++ 98和TIFF库保存几何数据(主要是二维的AutoCAD图纸)转换成TIFF格式,我有以下问题:

  1. 是否TIFF格式允许这样的转换?

    (我读一些有关的可能性,包括基于矢量的裁剪路径,但我不明白它非常)

  2. 如果是这样谁能帮助我如何做呢?

+2

是的,你可以呈现CAD绘图成TIFF。但是,也是的,这不可避免地会失去一些东西--TIFF是一种渲染,所以从一些固定的角度来看,它将以一定的规模。至于如何做到这点,通常将其渲染到内存缓冲区中,就像您要在屏幕上显示它,然后使用TIFF库将像素缓冲区格式化为正确的格式。 –

+0

让我们从2D开始...... –

如果你有autoCAD,那么你可能会以某种方式破解“导出到TIFF”按钮。

我发现的东西,可以帮助你here(搜查c++ autocad export):

添加引用 “autocad/objectdbx普通16型图书馆”

_acadAPP = gcnew AcadApplication(); 
AcadDocumentClass * _acadDocument = safe_cast< AcadDocumentClass * >(
_acadAPP->Documents->Item(0)); 
_acadAPP->Visible = true; 
IAcadModelSpace ^_acadModelSpace = dynamic_cast< IAcadModelSpace *>(_acadDocument->ModelSpace); 

这可能,如果你被过于复杂没有它。如果您在SO上阅读与this相关的帖子,您会注意到由于AutoCAD不是开源的,如果没有它,很难做任何事情。

一旦这个庞大的部分已经完成了 - 不知道这是可行的,然后按照libtiff.org指令,它看起来像这样:

#include "tiffio.h" 
main() 
{ 
    TIFF* tif = TIFFOpen("foo.tif", "r"); 
    ... do stuff ... 
    TIFFClose(tif); 
}