java 打开dwg_用java和c#实现dwg图片预览

本文档展示了如何使用Java和C#代码从DWG文件中读取并预览位图。通过解析DWG文件的特定字节来获取缩略图信息,创建位图文件头,并用内存文件流保存位图数据,最后生成Image对象进行显示。在C#中还涉及到背景色的处理,将白色背景转换为透明。
摘要由CSDN通过智能技术生成

[Java]

public class ViewDWG

{

//C# TO JAVA CONVERTER WARNING: Java does not allow user-defined

value types. The behavior of this class will differ from the

original:

//ORIGINAL LINE: struct BITMAPFILEHEADER

private final static class BITMAPFILEHEADER

{

public short bfType;

public int bfSize;

public short bfReserved1;

public short bfReserved2;

public int bfOffBits;

public BITMAPFILEHEADER clone()

{

BITMAPFILEHEADER varCopy = new BITMAPFILEHEADER();

varCopy.bfType = this.bfType;

varCopy.bfSize = this.bfSize;

varCopy.bfReserved1 = this.bfReserved1;

varCopy.bfReserved2 = this.bfReserved2;

varCopy.bfOffBits = this.bfOffBits;

return varCopy;

}

}

public final Image GetDwgImage(String FileName)

{

if (!((new java.io.File(FileName)).isFile()))

{

throw new FileNotFoundException("文件没有被找到");

}

FileStream DwgF; //文件流

int PosSentinel; //文件描述块的位置

BinaryReader br; //读取二进制文件

int TypePreview; //缩略图格式

int PosBMP; //缩略图位置

int LenBMP; //缩略图大小

short biBitCount; //缩略图比特深度

BITMAPFILEHEADER biH = new BITMAPFILEHEADER();

//BMP文件头,DWG文件中不包含位图文件头,要自行加上去

//C# TO JAVA CONVERTER WARNING: Unsigned integer types have no

direct equivalent in Java:

//ORIGINAL LINE: byte[] BMPInfo;

byte[] BMPInfo; //包含在DWG文件中的BMP文件体

MemoryStream BMPF = new MemoryStream(); //保存位图的内存文件流

BinaryWriter bmpr = new BinaryWriter(BMPF); //写二进制文件类

Image myImg = null;

try

{

DwgF = new FileStream(FileName, Fi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值