Red de conocimiento informático - Problemas con los teléfonos móviles - VB.net importar archivo DXF

VB.net importar archivo DXF

¿Importaciones?System.IO

¿Importaciones?System.Drawing

¿Público?Clase?PreViewDWG

¿Privado?Estructura?BITMAPFILEHEADER

¿Oscuro? bfType?As?Short

Dim?bfSize?As?Integer

Dim?bfReserved1?As?Short

Dim?bfReserved2?As?Short

¿Dim?bfOffBits?As?Integer

¿Público?Clase?PreViewDWG

¿Privado?Estructura?BITMAPFILEHEADER

¿Privado?Estructura?Entero

Estructura.final

Función.pública?GetDwgImage(ByVal?FileName?As?String)?As?Image

¿Si?Not?File.Exists(FileName)? Luego salga de la función

Dim?DwgF?As?FileStream'Flujo de archivos

Dim?PosSentinel?As?Integer?'La ubicación del bloque de descripción del archivo

¿Dim?Br?As?BinaryReader?Leer archivos binarios

¿Dim?TypePreview?As?Integer?'Formato de miniatura

Dim?PosBMP?As?Integer?'Posición de miniatura

p>

p>

¿Dim?LenBMP?As?Integer?'Tamaño de miniatura

Dim?biBitCount?As?Short?'Profundidad de bits de miniatura

Dim?biH ?Como? BITMAPFILEHEADER?'Encabezado del archivo BMP, el archivo DWG no contiene encabezado de archivo de mapa de bits, debe agregarlo usted mismo

Dim?BMPInfo()?As?Byte?'Cuerpo del archivo BMP incluido en el archivo DWG

¿Dim?BMPInfo()?As?Byte?'El cuerpo del archivo BMP contenido en el archivo DWG

¿Dim?El cuerpo del archivo BMP contenido en el archivo DWG

¿BMPF?As?New?MemoryStream?' flujo de archivo de memoria de mapa de bits

¿Dim?bmpr?As?New?BinaryWriter(BMPF)?Escribir clase de archivo binario

Dim?myImg ?Como?Imagen

Pruebe

DwgF?=?New?FileStream(FileName,?FileMode.Open,?FileAccess.Read)'FileStream

br? =?New?BinaryReader(DwgF)

DwgF.Seek(13,?SeekOrigin.Begin)?Leer desde el byte 13

PosSentinel?=?br.ReadInt32 ?'Bytes 13 a 17 representa la ubicación del bloque de descripción de miniaturas

DwgF.Seek(PosSentinel? ?30, ?SeekOrigin.Begin)?Mueva el puntero al byte 31 del bloque de descripción de miniaturas

TipoPre

view?=?br.ReadByte?'El byte 31 es la información del formato de miniatura, 2 representa el formato BMP, 3 representa el formato WMF

¿Seleccionar?Case?TypePreview?

¿Caso 1?

Case?2,?3

PosBMP?=?br.ReadInt32?' La ubicación del mapa de bits guardado en el archivo DWG

LenBMP?=? br.ReadInt32?'El tamaño del mapa de bits

DwgF.Seek(PosBMP? ?14, ?SeekOrigin. Begin)? Mueva el puntero al bloque de mapa de bits

biBitCount?=?br.ReadInt16?'Lea la profundidad de bits

DwgF.Seek(PosBMP,?SeekOrigin.Begin)? Leer todo el contenido del mapa de bits al principio Alternate

BMPInfo?=?br.ReadBytes(LenBMP)?Información del mapa de bits sin encabezado de archivo

br.Close()

DwgF.Close()

Con?biH?'Crear encabezado de archivo de mapa de bits

.bfType?=? amp;H4D42

If?biBitCount ?lt; ?9?Entonces?.bfSize?=?54? ?4?*?(2?^?biBitCount)? ?LenBMP?De lo contrario?.bfSize?=?54? ?0?'Bytes reservados

.bfReserved2?=?0?'Bytes reservados

.bfOffBits?=?14?amp;?1024? /p>

Fin

'Comience a escribir el encabezado del archivo de mapa de bits a continuación

bmpr.Write(biH.bfType)?Tipo de archivo

p>

bmpr.Write(biH.bfSize)?Tamaño del archivo

bmpr.Write(biH.bfReserved1)?0

bmpr.Write(biH.bfReserved2)?0

bmpr.Write(biH.bfOffBits)?Compensación de datos de imagen

bmpr.Write(BMPInfo)?Escribir mapa de bits

BMPF.Seek(0 ,?SeekOrigin.Begin) ?Mover el puntero al principio del archivo

myImg?=?Image.FromStream(BMPF)?' Crear un objeto de archivo de mapa de bits