版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
AutoCad形和形文件33.1.1簡(jiǎn)介“形(Shape)”是AutoCAD中一種特殊的圖形對(duì)象,其用法類似于塊,但與塊相比,形的圖形構(gòu)成較簡(jiǎn)單,但其所占用空間較小,且繪制速度較快。因此形適合于創(chuàng)建需要多次重復(fù)使用的簡(jiǎn)單圖形,例如特殊符號(hào)或文字字體等。形也是在形定義文件中定義的,形定義文件是以“.shp”為擴(kuò)展名的ASCII文件。形定義文件需要編譯為形文件后才能為AutoCAD使用,編譯后的形文件與形定義文件同名,其擴(kuò)展名為“.shx”。33.1.2形的定義1.形的定義格式形的定義由標(biāo)題行和定義字節(jié)行組成:(1)標(biāo)題行:標(biāo)題行以“*”為開始標(biāo)記,用于說明形的編號(hào)、大小和名稱,其格式為:*shapenumber,defbytes,shapename其中各項(xiàng)意義如下:shapenumber:形的編號(hào),取值范圍是1~258;在同一文件中每個(gè)形編號(hào)應(yīng)保持唯一。defbytes:表示形定義描述行的數(shù)據(jù)字節(jié)數(shù),包括末尾的零;最大值為2000。shapename:形的名稱,要求必須大寫。(2)定義字節(jié)行:由描述代碼組成,代碼之間由逗號(hào)分開,最后以0結(jié)束。定義字節(jié)行可以有一行或多行。其格式為:specbyte1,specbyte2,specbyte3,...,0形定義文件的每一行最多可包含128個(gè)字符,超過此長(zhǎng)度的行不能編譯。AutoCAD忽略空行和分號(hào)右邊的文字。2.描述代碼形文件中描述代碼包括矢量長(zhǎng)度和方向代碼和特殊代碼兩種。(1)矢量長(zhǎng)度和方向代碼:矢量長(zhǎng)度和方向代碼是一個(gè)由三個(gè)字符組成的字符串。第一個(gè)字符必須為0,表示后面的兩個(gè)字符為十六進(jìn)制值;第二個(gè)字符給出了矢量的長(zhǎng)度,取值為1~F;第三個(gè)字符表示矢量的方向,取值為1~F,具體含義如圖33-1所示。注意所謂矢量長(zhǎng)度是指沿X軸方向或Y軸方向的長(zhǎng)度,斜線的矢量長(zhǎng)度應(yīng)以其在X軸或Y軸上的投影長(zhǎng)度為準(zhǔn)。例如圖33-1中16條線段的矢量長(zhǎng)度的相同的。(2)特殊代碼:矢量長(zhǎng)度和方向代碼所定義的長(zhǎng)度和方向僅為十幾種,為了創(chuàng)建更豐富的形,AutoCAD提供了14種特殊代碼(可使用十六進(jìn)制或十進(jìn)制),用于創(chuàng)建其他格式或指定特定操作。特殊代碼的具體種類和意義如表1-1所示。表33-1特殊代碼及意義代碼(十六進(jìn)制)代碼(十進(jìn)制)意義0000表示形定義結(jié)束0011表示激活繪圖模式(落筆)0022表示停止繪圖模式(提筆)0033表示用代碼的下一字節(jié)去除矢量長(zhǎng)度,即比例縮小0044表示用代碼的下一字節(jié)去乘矢量長(zhǎng)度,即比例放大0055將當(dāng)前位置壓入堆棧,即保存當(dāng)前位置0066從堆棧彈出當(dāng)前位置,即恢復(fù)由代碼005保存的最后一個(gè)位置0077引用其它形,代碼的下一字節(jié)指定了被引形的編號(hào)0088由當(dāng)前位置繪制線段,代碼的下兩個(gè)字節(jié)指定了線段在X、Y方向上的相對(duì)位移0099由當(dāng)前位置開始繪制一系列的線段,代碼后面的字節(jié)分別指定了各個(gè)線段在X、Y方向上的相對(duì)位移,最后以(0,0)為結(jié)束符00A10繪制八分圓弧00B11繪制分?jǐn)?shù)圓弧00C12根據(jù)由X、Y位移和凸度繪制圓弧00D13多個(gè)指定凸度的圓弧00E14僅適用于垂直文字,用來將下一個(gè)字符繪制在前一個(gè)字符的下面提示在形定義的代碼中可使用括號(hào)來增強(qiáng)可讀性。33.1.3形的創(chuàng)建與使用形的定義文件是ASCII格式的,因此,可以使用任一文本編輯器直接打開或創(chuàng)建填充圖案文件,并對(duì)其內(nèi)容進(jìn)行補(bǔ)充和修改。實(shí)例1創(chuàng)建名為“TRIANGLE”的形(1)使用Windows附件中的“記事本”程序創(chuàng)建一個(gè)新的文本文件。(2)在該文件中添加如下內(nèi)容,如圖33-2所示。;user.shp-userdefinedshapes*1,4,TRAINGLE020,016,01A,0警告文件中最后一行要回車,否自編譯出錯(cuò)。(3)保存該文件,并命名為“user.shp”。(4)進(jìn)入AutoCAD2002,在命令行輸入:compile,彈出“SelectShapeofFontFile”對(duì)話框,選中“user.shp”文件后單擊鍵返回。如圖33-3所示。系統(tǒng)給出如下提示信息:Compilingshape/fontdescriptionfileCompilationsuccessful.OutputfileD:\ProgramFiles\AutoCAD2002\Fonts\user.shxcontains50bytes.表明“user.shp”文件編譯成功,生成了名為“user.shx”的形文件;(5)在命令行輸入:load,彈出“SelectShapeFontFile”對(duì)話框,選中“user.shx”文件后單擊Open鍵返回。如圖33-4所示。(6)在命令行輸入:shape,并根據(jù)提示輸入:Entershapenameor[?]:triangleEnter(指定形名)Specifyinsertionpoint:0,0Enter(指定插入點(diǎn))Specifyheight<1.0000>:Enter(指定形的比例系數(shù))Specifyrotationangle<0>:Enter(指定形與水平方向的夾角)此時(shí)我們所定義的形“TRIANGLE”即被繪制在屏幕上。下面我們來做一個(gè)復(fù)雜一點(diǎn)的例子,該實(shí)例中引用了形“TRAINGLE”。實(shí)例2創(chuàng)建名為“MARK”的形(1)使用Windows附件中的“記事本”打開實(shí)例一中創(chuàng)建的“user.shp”文件,在文件中添加如下內(nèi)容:*2,11,MARK082,10,4,050,002,008,1,2,007,1,0保存該文件。(2)在AutoCAD2002中對(duì)該文件重新進(jìn)行編譯和載入,具體步驟同實(shí)例一。(3)在AutoCAD2002中插入形“MARK”,結(jié)果如圖33-5所示。下面是ACAD幫助中的內(nèi)容每個(gè)形或字符的形說明語法都不考慮形說明的最后用法(用作形或字體)。如果形定義文件被用作字體文件,則文件中的第一個(gè)條目必須描述字體本身,而不是該文件中的形;如果第一個(gè)條目描述一個(gè)形,則該文件被用作形文件。能夠創(chuàng)建自己的形定義是非常有價(jià)值的。但是,要知道,這是一個(gè)非常復(fù)雜的學(xué)習(xí)課題,而且需要有耐心。形定義文件的每一行最多可包含128個(gè)字符。超過此長(zhǎng)度的行不能編譯。由于AutoCAD忽略空行和分號(hào)右邊的文字,所以可以在形定義文件中嵌入注釋。每個(gè)形說明都有一個(gè)標(biāo)題行(格式如下),以及一行或多行定義字節(jié)。這些定義字節(jié)之間以逗號(hào)分隔,最后以0結(jié)束。*shapenumber,defbytes,shapename
specbyte1,specbyte2,specbyte3,...,0下表描述了形說明的各個(gè)字段:shapenumber文件中唯一的一個(gè)1到258(對(duì)于Unicode字體,最多為32768)之間的數(shù)字,帶前綴星號(hào)(*)。對(duì)于非Unicode字體文件,用256、257和258分別作為符號(hào)標(biāo)識(shí)符Degree_Sign、Plus_Or_Minus_Sign和Diameter_Symbol的形編號(hào)。對(duì)Unicode字體,這些字形以U+00B0、U+00B1和U+2205作為形編號(hào)并且是“LatinExtended-A”子集的一部分。字體(包含每個(gè)字符的形定義的文件)的編號(hào)要與每個(gè)字符的ASCII碼對(duì)應(yīng);其他形可指定任意數(shù)字。defbytes用于描述形的數(shù)據(jù)字節(jié)(specbytes)的數(shù)目,包括末尾的零。每個(gè)形最多可有2,000個(gè)字節(jié)。shapename形的名稱。形的名稱必須大寫,以便于區(qū)分。包含小寫字符的名稱被忽略,并且通常用作字體形定義的標(biāo)簽。specbyte形定義字節(jié)。每個(gè)定義字節(jié)都是一個(gè)代碼,或者定義矢量長(zhǎng)度和方向,或者是特殊代碼的對(duì)應(yīng)值之一。在形定義文件中,定義字節(jié)可以用十進(jìn)制或十六進(jìn)制值表示。與許多形定義文件一樣,本節(jié)樣例中同時(shí)使用了十進(jìn)制和十六進(jìn)制定義字節(jié)值。如果形定義字節(jié)的第一個(gè)字符為0(零),則后面的兩個(gè)字符解釋為十六進(jìn)制值。簡(jiǎn)單的形定義字節(jié)在一個(gè)定義字節(jié)(一個(gè)specbyte字段)中包含矢量長(zhǎng)度和方向的編碼。每個(gè)矢量的長(zhǎng)度和方向代碼是一個(gè)三字符的字符串。第一個(gè)字符必須為0,用于指示AutoCAD將后面的兩個(gè)字符解釋為十六進(jìn)制值。第二個(gè)字符指定矢量的長(zhǎng)度。有效的十六進(jìn)制值的范圍是從1(1個(gè)單位長(zhǎng)度)到F(15個(gè)單位長(zhǎng)度)。第三個(gè)字符指定矢量的方向。下圖展示了方向代碼。
上圖中的所有矢量都按同樣的長(zhǎng)度定義繪制。對(duì)角矢量長(zhǎng)度延長(zhǎng),以匹配最接近的正交矢量的X或Y位移。這與AutoCAD中的捕捉柵格操作相似。下例構(gòu)造名為DBOX的形,指定形的編號(hào)為230。*230,6,DBOX014,010,01C,018,012,0上述定義字節(jié)序列定義了一個(gè)單位長(zhǎng)度、一個(gè)單位寬度的方框,以及從左下角到右上角的對(duì)角線。將文件保存為dbox.shp后,使用COMPILE命令生成dbox.shx文件。使用LOAD命令加載包含此定義的形文件,然后按照如下方式使用SHAPE命令:命令:
shape
輸入形名稱(或?):
dbox
指定插入點(diǎn):
1,1
指定高度<當(dāng)前值>:
2
指定旋轉(zhuǎn)角度<當(dāng)前值>:
0
結(jié)果形如下圖所示:
代碼0標(biāo)識(shí)形定義結(jié)束。代碼1和2控制繪制模式。繪圖模式在繪制每個(gè)形的開始時(shí)激活。當(dāng)繪圖模式打開(代碼1)時(shí),一個(gè)矢量說明將繪制一條直線;當(dāng)繪圖模式關(guān)閉(代碼2)時(shí),矢量說明只移到新位置,而不繪制直線。代碼3和4控制每個(gè)矢量的相對(duì)尺寸。SHAPE命令指定的高度最初被當(dāng)作單個(gè)正交矢量(方向?yàn)?、4、8或C)的長(zhǎng)度。代碼3將矢量長(zhǎng)度除以下一個(gè)字節(jié)。代碼4將矢量長(zhǎng)度乘以下一個(gè)字節(jié)。代碼3和4后跟一個(gè)定義字節(jié),該字節(jié)包含一個(gè)整數(shù)縮放比例(1到255)。如果要用形高度來指定整個(gè)形的尺寸,并要用矢量長(zhǎng)度10繪制,則可用3,10縮放高度定義??s放比例在同一形中是累計(jì)的,即,乘以2后再乘以6,結(jié)果縮放比例為12。通常用戶需要在形的結(jié)尾恢復(fù)原縮放比例,尤其是對(duì)子形和字體形。AutoCAD不會(huì)為用戶自動(dòng)重置縮放比例。代碼5和6在繪制形時(shí)壓入(保存)和彈出(恢復(fù))當(dāng)前坐標(biāo)位置,這樣就可從后面的點(diǎn)返回該點(diǎn)??梢詮棾鏊鶋喝氲娜魏沃?。位置堆棧只能保存四個(gè)位置值。如果由于過多的壓入操作或彈出丟失而造成堆棧溢出,則在繪制形時(shí)將顯示如下信息:位置堆棧上溢,位于形nnn中與此類似,如果試圖從堆棧中彈出過多的位置值,則在繪制形時(shí)將顯示如下信息:位置堆棧下溢,位于形nnn中代碼7繪制編號(hào)由下一個(gè)字節(jié)指定的子形。對(duì)于非Unicode字體,代碼7后面的定義字節(jié)是1到255之間的形數(shù)字編號(hào)。對(duì)于Unicode字體,代碼7后面的定義字節(jié)是1到65535之間的形數(shù)字編號(hào)。Unicode形數(shù)字編號(hào)以兩個(gè)字節(jié)計(jì)數(shù)(關(guān)于Unicode字體與非Unicode字體之間的差別的詳細(xì)信息,請(qǐng)參見\o"Unicode字體說明"Unicode字體說明)。此編號(hào)的形(在同一形文件中)在此時(shí)繪制。繪圖模式不會(huì)為新形重置。當(dāng)子形繪制結(jié)束后,繼續(xù)繪制當(dāng)前形。法向矢量定義字節(jié)只能在十六個(gè)預(yù)定義的方向上繪制,并且最大長(zhǎng)度為15。這些限制使形定義更為有效,但有時(shí)會(huì)變得過于局限。通過代碼8和9可用XY位移繪制非標(biāo)準(zhǔn)矢量。代碼8指定由下兩個(gè)字節(jié)指定的X-Y位移。代碼8后必須跟兩個(gè)定義字節(jié):8,X-displacement,Y-displacement
XY位移范圍為-128到+127。前面的+可選,并且可用括號(hào)增強(qiáng)可讀性。下例中的矢量向左繪制(或移動(dòng))10個(gè)單位,再向上繪制(或移動(dòng))3個(gè)單位。8,(-10,3)在兩個(gè)位移定義字節(jié)之后,形返回法向矢量模式。用代碼9可繪制一系列非標(biāo)準(zhǔn)矢量。代碼9可指定任意數(shù)量的XY位移對(duì)。由(0,0)對(duì)終止。下例繪制三個(gè)非標(biāo)準(zhǔn)矢量后返回法向矢量模式。9,(3,1),(3,2),(2,-3),(0,0)必須用(0,0)對(duì)終止XY位移對(duì)序列,使AutoCAD能識(shí)別后面的法向矢量或特殊代碼。特殊代碼00A(或10)用下兩個(gè)定義字節(jié)定義一個(gè)圓弧。此圓弧稱為八分圓弧,因?yàn)樗缭揭粋€(gè)或多個(gè)45度的八分圓,起點(diǎn)和終點(diǎn)都在八分圓邊界上。八分圓從三點(diǎn)的位置逆時(shí)針編號(hào),如下圖所示:
圓弧定義為:10,radius,(-)0SC
半徑可以是1到255之間的任意值。第二個(gè)定義字節(jié)指定圓弧的方向(如果為正,則為逆時(shí)針;如果為負(fù),則為順時(shí)針)、開始八分圓(s,0到7之間的任意值)和跨越的八分圓數(shù)(c,0到7之間的任意值。其中,0指八個(gè)八分圓或整個(gè)圓)。可用括號(hào)增強(qiáng)可讀性。例如,考慮如下形定義片段:...012,10,(1,-032),01E,...此代碼依次分別繪制:向右上的一個(gè)單位矢量、從八分圓3開始的順時(shí)針圓?。ò霃綖橐粋€(gè)單位,跨越兩個(gè)八分圓)和向右下的一個(gè)單位矢量,如下圖所示:
特殊代碼00B(11)繪制的圓弧,其起點(diǎn)和終點(diǎn)不一定在八分圓邊界上。其定義使用五個(gè)定義字節(jié):11,start_offset,end_offset,high_radius,radius,(-)0SC
start_offset和end_offset表示與圓弧起點(diǎn)和終點(diǎn)所在的八分圓邊界的距離。high_radius表示半徑的高八位有效數(shù)字,當(dāng)radius不大于255時(shí)其值為0。將high_radius值與256相乘并加上radius值,可生成大于255的圓弧半徑。radius和最后的定義字節(jié)與八分圓弧的定義(代碼00A,如前所述)一樣。計(jì)算起點(diǎn)八分圓邊界(45度的倍數(shù))與圓弧起點(diǎn)之間所差的度數(shù),再將其乘以256,除以45,即得到start
offset。如果圓弧從八分圓邊界開始,則其startoffset為0。endoffset的計(jì)算方式是相似的,但必須用最后一個(gè)八分圓邊界與圓弧終點(diǎn)之間所差的度數(shù)進(jìn)行計(jì)算。如果圓弧在八分圓邊界終止,則其endoffset為0。例如,從55度到95度,半徑為3個(gè)單位的特殊圓弧編碼如下:11,(56,28,0,3,012)解釋如下:start_offset
=56因?yàn)?(55-45)*256/45)=56end_offset
=28因?yàn)?(95-90)*256/45)=28high_radius
=0
因?yàn)?radius<255)radius
=3startingoctant
=1
因?yàn)閳A弧起點(diǎn)在45度八分圓中
endingoctant
=2
因?yàn)閳A弧終點(diǎn)在90度八分圓中特殊代碼00C和00D(12和13)提供另一種在形說明中包括圓弧的機(jī)制。它們與代碼8和9相似,在代碼8和9中通過指定XY位移來繪制圓弧,而在代碼00C和00D中通過將凸度因子應(yīng)用到位移矢量來繪制圓弧。代碼00C繪制一段圓弧,而代碼00D繪制多段圓弧(polyarcs),直到該圓弧被(0,0)位移終止為止。代碼00C后必須跟上三個(gè)描述圓弧的字節(jié):0C,X-displacement,Y-displacement,Bulge
X、Y位移和凸度(指定圓弧的曲率)的取值范圍為-127到+127。如果位移指定的線段長(zhǎng)度為D,垂直于該線段中點(diǎn)的距離為H,則凸度的幅值為((2*H/D)*127)。如果圓弧從當(dāng)前位置到新位置是順時(shí)針走向的,則符號(hào)為負(fù)。
半圓的凸度為127(或-127),是用這種編碼所能表示的最大的單段圓?。ㄓ脙蓚€(gè)連續(xù)的圓弧段表示更大的圓弧)。凸度定義可以為0,表示直線段。請(qǐng)注意,用代碼8表示直線段在形說明中只占用一個(gè)字節(jié)。多段圓弧代碼(00D或13)后面可跟0或多個(gè)圓弧段定義,最后被(0,0)位移終止。請(qǐng)注意,最后一個(gè)位移之后不能再指定凸度。例如,字母S可以如下定義:13,(0,5,127),(0,5,-127),(0,0)零凸度線段用于在多段圓弧中表示直線段,它們相當(dāng)有用。與終止多段圓弧、插入直線段后再開始另一多段圓弧這種方法相比,其效率要高得多。在單段圓弧和多段圓弧定義中不能使用數(shù)字-128。特殊代碼00E(14)僅用于雙向字體說明中。雙向字體說明中的字體在水平和垂直兩個(gè)方向上使用。在字符定義中遇到此特殊代碼時(shí),下一代碼是否進(jìn)行處理由該字符的方向決定。如果方向?yàn)榇怪钡?,則下一代碼被處理;如果方向?yàn)樗降?,則下一代碼被忽略。在水平文字中,每個(gè)字符的起點(diǎn)是基線的左端;在垂直文字中,起點(diǎn)為字符上方正中。在每個(gè)字符的結(jié)尾,通常需要用提筆線段繪至下個(gè)字符的起點(diǎn)。對(duì)水平文字,該線段是向右繪制的;而對(duì)垂直文字,該線段是向下繪制的。特殊代碼00E(14)主要用于調(diào)整不同的起點(diǎn)和終點(diǎn),使同一字符形定義可用于水平文字,也可用于垂直文字。例如,如下對(duì)大寫D的定義可用于水平文字,也可用于垂直文字。*68,22,ucd2,14,8,(-2,6),1,030,012,044,016,038,2,010,1,06C,2,050,14,8,(-4,-3),0呵呵,給老大講的再加一個(gè)方法哦,我也曾經(jīng)查找能瀏覽并更改DWG文件數(shù)據(jù)的控件,偶然間發(fā)現(xiàn)以下代碼,可以在不加任何控件的情況下瀏覽DWG的縮略圖,這個(gè)是在搞明白了DWG的文件格式的情況下編寫的,就是用一個(gè)FORM和一個(gè)PICTUREBOX再加一個(gè)BUTTON,我也是從網(wǎng)上搜索的,另外大家也可以到GOOGLE上搜一下,貼下來供大家參考:
Pr在不使用任務(wù)插件的情況下讀取DWG文件的縮略圖,以便在沒有安裝AutoCAD的計(jì)算機(jī)上瀏覽。
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;namespace瀏覽dwg
{
publicpartialclassForm1:Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidForm1_Load(objectsender,EventArgse)
{
ViewDWGviewDwg=newViewDWG();
pictureBox1.Image=viewDwg.GetDwgImage("c:\\1.dwg");
}
classViewDWG
{
structBITMAPFILEHEADER
{
publicshortbfType;
publicintbfSize;
publicshortbfReserved1;
publicshortbfReserved2;
publicintbfOffBits;
}
publicImageGetDwgImage(stringFileName)
{
if(!(File.Exists(FileName)))
{
thrownewFileNotFoundException("文件沒有被找到");
}
FileStreamDwgF;//文件流
intPosSentinel;//文件描述塊的位置
BinaryReaderbr;//讀取二進(jìn)制文件
intTypePreview;//縮略圖格式
intPosBMP;
//縮略圖位置
intLenBMP;
//縮略圖大小
shortbiBitCount;//縮略圖比特深度
BITMAPFILEHEADERbiH;//BMP文件頭,DWG文件中不包含位圖文件頭,要自行加上去
byte[]BMPInfo;
//包含在DWG文件中的BMP文件體
MemoryStreamBMPF=newMemoryStream();//保存位圖的內(nèi)存文件流
BinaryWriterbmpr=newBinaryWriter(BMPF);//寫二進(jìn)制文件類
ImagemyImg=null;
try
{
DwgF=newFileStream(FileName,FileMode.Open,FileAccess.Read);
//文件流
br=newBinaryReader(DwgF);
DwgF.Seek(13,SeekOrigin.Begin);//從第十三字節(jié)開始讀取
PosSentinel=br.ReadInt32();//第13到17字節(jié)指示縮略圖描述塊的位置
DwgF.Seek(PosSentinel+30,SeekOrigin.Begin);//將指針移到縮略圖描述塊的第31字節(jié)
TypePreview=br.ReadByte();//第31字節(jié)為縮略圖格式信息,2為BMP格式,3為WMF格式
if(TypePreview==1)
{
}
elseif(TypePreview==2||TypePreview==3)
{
PosBMP=br.ReadInt32();//DWG文件保存的位圖所在位置
LenBMP=br.ReadInt32();//位圖的大小
DwgF.Seek(PosBMP+14,SeekOrigin.Begin);//移動(dòng)指針到位圖塊
biBitCount=br.ReadInt16();//讀取比特深度
DwgF.Seek(PosBMP,SeekOrigin.Begin);//從位圖塊開始處讀取全部位圖內(nèi)容備用
BMPInfo=br.ReadBytes(LenBMP);//不包含文件頭的位圖信息
br.Close();
DwgF.Close();
biH.bfType=19778;//建立位圖文件頭
if(biBitCount<9)
{
biH.bfSize=54+4*(int)(Math.Pow(2,biBitCount))+LenBMP;
}
else
{
biH.bfSize=54+LenBMP;
}
biH.bfReserved1=0;//保留字節(jié)
biH.bfReserved2=0;//保留字節(jié)
biH.bfOffBits=14+40+1024;//圖像數(shù)據(jù)偏移
//以下開始寫入位圖文件頭
bmpr.Write(biH.bfType);//文件類型
bmpr.Write(biH.bfSize);//文件大小
bmpr.Write(biH.bfReserved1);//0
bmpr.Write(biH.bfReserved2);//0
bmpr.Write(biH.bfOffBits);//圖像數(shù)據(jù)偏移
bmpr.Write(BMPInfo);//寫入位圖
BMPF.Seek(0,SeekOrigin.Begin);//指針移到文件開始處
myImg=Image.FromStream(BMPF);//創(chuàng)建位圖文件對(duì)象
bmpr.Close();
BMPF.Close();
}
returnmyImg;
}
catch(Exceptionex)
{
thrownewException(ex.Message);
}
}
}
}
}另外我現(xiàn)在只用OPENDESIGN的DWGDIRECTX,這個(gè)是個(gè)很好的控件,可以在不裝AUTOCAD軟件下隨意操作DWG文件、創(chuàng)作新的DWG文件,說起OPENDESIGN和AUTODESK二者關(guān)系源遠(yuǎn)流長(zhǎng),追溯到DWG文件格式,大家可以到網(wǎng)上去看看,。
AUTODESK為了打壓DWGDIRECT,自己也搞了一套realDWG的開發(fā)庫,即在沒有安裝AUTOCAD軟件的情況下自己編程創(chuàng)建、編輯DWG文件,無論如何,二者的大部分函數(shù)和庫都差不多,我現(xiàn)在用DWGDIRECTX做二次開發(fā),完全脫離AUTOCAD,很方便的。大家可以到[url=http://www.O
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 半導(dǎo)體照明光源項(xiàng)目可行性研究報(bào)告申請(qǐng)報(bào)告
- 關(guān)于堅(jiān)持高二記敘文作文
- 云南省昭通市昭陽區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期1月期末考試歷史試卷(無答案)
- 形容噩夢(mèng)的詩句
- 鋼筋材料運(yùn)輸合同
- 出租車大包租賃合同
- 廣州寫字樓租賃合同范文
- 個(gè)人大眾汽車出租合同
- 檔口租賃合同樣板
- 2024年軟件開發(fā)與應(yīng)用合同
- 2023-2024學(xué)年廣東省深圳市光明區(qū)高二(上)期末地理試卷
- 【8地RJ期末】安徽省蕪湖市弋江區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末考試地理試卷(含解析)
- 期末(試題)-2024-2025學(xué)年人教PEP版英語六年級(jí)上冊(cè)
- 2024年公安基礎(chǔ)知識(shí)考試題庫及答案
- 三創(chuàng)賽獲獎(jiǎng)-非遺文化創(chuàng)新創(chuàng)業(yè)計(jì)劃書
- 教你成為歌唱達(dá)人智慧樹知到期末考試答案2024年
- 2024分娩鎮(zhèn)痛ppt課件完整版
- 酒店水單模板
- SCI論文寫作課件
- 典型6B燃機(jī)技術(shù)協(xié)議書A_Rev_0527
- 曲式分析演唱技巧情感運(yùn)用
評(píng)論
0/150
提交評(píng)論