使用C++将二维CAD对象转换为TIFF格式
问题描述:
我想将CAD格式(主要是2D Autocad图纸)导出为TIFF格式。使用C++将二维CAD对象转换为TIFF格式
我可以在互联网上找到的是如何将图像格式转换为TIFF(像素,颜色..)。但我正在寻找使用C++ 98和TIFF库保存几何数据(主要是二维的AutoCAD图纸)转换成TIFF格式,我有以下问题:
-
是否TIFF格式允许这样的转换?
(我读一些有关的可能性,包括基于矢量的裁剪路径,但我不明白它非常)
如果是这样谁能帮助我如何做呢?
答
如果你有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);
}
是的,你可以呈现CAD绘图成TIFF。但是,也是的,这不可避免地会失去一些东西--TIFF是一种渲染,所以从一些固定的角度来看,它将以一定的规模。至于如何做到这点,通常将其渲染到内存缓冲区中,就像您要在屏幕上显示它,然后使用TIFF库将像素缓冲区格式化为正确的格式。 –
让我们从2D开始...... –