圖像編程與文字處理.ppt
《圖像編程與文字處理.ppt》由會員分享,可在線閱讀,更多相關(guān)《圖像編程與文字處理.ppt(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第6章圖像編程與文字處理 精雕細琢 美化應(yīng)用程序 教學(xué)內(nèi)容 6 1圖形設(shè)備接口 6 2常用繪圖函數(shù) 6 3繪圖工具 6 4字體與文字處理 6 5位圖 6 6綜合實例 建立賓館管理系統(tǒng)的啟動界面 6 7小結(jié)思考與練習(xí) 6 1圖形設(shè)備接口 6 1 1設(shè)備環(huán)境類在Windows程序中 應(yīng)用程序的輸出并不直接面向物理的設(shè)備 如顯示屏或打印機 而是針對一個稱之為設(shè)備環(huán)境 DeviceContext 的邏輯設(shè)備進行操作 設(shè)備環(huán)境與實際設(shè)備之間的信息傳送由Windows直接管理 在MFC應(yīng)用程序中 所有的繪制調(diào)用均通過相應(yīng)的設(shè)備環(huán)境對象實現(xiàn) 設(shè)備環(huán)境對象封裝了相應(yīng)的WindowsAPI功能 由一個32位的HDC類型句柄標(biāo)識 在MFC類庫中 用CDC類封裝設(shè)備文本對象 6 1圖形設(shè)備接口 6 1 1設(shè)備環(huán)境類1 設(shè)備環(huán)境類 CDC CDC類直接繼承自CObject類 它是設(shè)備上下文對象的基類 CDC基類定義了設(shè)備描述表對象 并且提供在顯示器 打印機或Windows用戶區(qū)上繪圖的方法 它封裝了使用設(shè)備環(huán)境的GDI函數(shù) 所有的繪圖操作都是直接或間接運用了CDC的成員函數(shù) 這些函數(shù)有的進行設(shè)備描述表操作 有的是用來畫圖的 還有的函數(shù)是用來獲取或設(shè)置繪圖屬性 為映像和視圖服務(wù)的 2 派生類CPaintDCCPaintDC是從CDC派生出來的設(shè)備描述表類 它常常在窗口的OnPaint函數(shù)中使用 查看MFC的源代碼 Studio VC98 MFC SRC viewcore cpp 中的OnPaint函數(shù)的實現(xiàn)可以知道 OnPaint函數(shù)首先構(gòu)造一個CPaintDC對象 再調(diào)用OnPrepareDC 函數(shù)將其準備好 最后以這個準備好的CPaintDC對象指針為參數(shù) 來調(diào)用OnDraw函數(shù)進行各種圖形處理 6 1圖形設(shè)備接口 6 1 1設(shè)備環(huán)境類3 派生類CClientDC 管理客戶區(qū) CClientDC類只能在客戶區(qū)繪圖 所謂客戶區(qū)是指窗口區(qū)域中去掉邊框 標(biāo)題欄 菜單欄 工具欄 狀態(tài)欄等以外的部分 它是用戶可以操作的區(qū)域 例如打開Word文檔將是將某個 doc文件顯示在其客戶區(qū)域中 在使用CClientDC進行繪圖時 一般要調(diào)用GetClientRect函數(shù)來獲取客戶區(qū)域的大小 4 派生類CWindowDC 管理框架窗口 CWindowDC類直接從CDC派生 它使調(diào)用和釋放整個窗口 包括客戶區(qū)和非客戶區(qū) 的設(shè)備環(huán)境過程自動化 CWindowDC對象在構(gòu)造時調(diào)用WindowsAPI函數(shù)GetWindowDC 在析構(gòu)時調(diào)用相應(yīng)的API函數(shù)ReleaseDC 這意味著CWindowtDC對象可訪問CWnd所指向的整個屏幕區(qū)域 6 1圖形設(shè)備接口 6 1 2使用GDI對象在選擇GDI對象進行繪圖時 往往遵循著下列的步驟 1 在堆棧中定義一個GDI對象 如CPen CBrush對象 然后用相應(yīng)的函數(shù) 如CreatePen CreateSolidBrush 創(chuàng)建此GDI對象 2 將構(gòu)造的GDI對象選入當(dāng)前設(shè)備環(huán)境中 但不要忘記將原來的GDI對象保存起來 3 繪圖結(jié)束后 恢復(fù)當(dāng)前設(shè)備環(huán)境中原來的GDI對象 4 由于GDI對象是在堆棧中創(chuàng)建中 當(dāng)程序結(jié)束后 框架會自動刪除程序創(chuàng)建的GDI對象 6 1圖形設(shè)備接口 6 1 3坐標(biāo)映射Windows的GDI graphicsdeviceinterface 支持兩種坐標(biāo)系 即邏輯坐標(biāo)系和物理坐標(biāo)系 分別連接應(yīng)用程序和圖形物理設(shè)備 物理坐標(biāo)是指物理設(shè)備的坐標(biāo)系 它的單位是真正的長度單位 有英寸 in 和毫米 mm 兩種 它的原點在屏幕的左上角 X軸向右遞增 Y軸向下遞增 邏輯坐標(biāo)指的是在窗口下的坐標(biāo) 邏輯坐標(biāo)的單位是邏輯像素 在Windows系統(tǒng)中 總共有三種物理坐標(biāo) 又叫設(shè)備坐標(biāo) 分別是屏幕坐標(biāo) 用戶區(qū)坐標(biāo) 全窗口坐標(biāo) 1 客戶區(qū)坐標(biāo)系統(tǒng) 客戶區(qū)坐標(biāo)系統(tǒng)是最常見的坐標(biāo)系統(tǒng) 以窗口客戶區(qū)左上角為原點 0 0 主要用于窗口客戶區(qū)繪圖輸出以及處理窗口的一些消息 鼠標(biāo)消息WM LBUTTONDOWN WM MOUSEMOVE傳給框架的消息參數(shù)以及CDC一些用于繪圖的成員都是使用客戶區(qū)坐標(biāo) 2 屏幕坐標(biāo)系統(tǒng) 屏幕坐標(biāo)系統(tǒng)是另一類常用的坐標(biāo)系統(tǒng) 以屏幕左上角為原點 0 0 一些與窗口客戶區(qū)不相關(guān)的函數(shù)均以屏幕坐標(biāo)為單位 例如設(shè)置和取得光標(biāo)位置的函數(shù)SetCursorPos 和GetCursorPos 由于光標(biāo)可以在任何一個窗口之間移動 它不屬于任何一個單一的窗口 因此使用屏幕坐標(biāo) 彈出式菜單使用的也是屏幕坐標(biāo) 另外 CreateWindow 和MoveWindow 等函數(shù)用于設(shè)置窗口相對于屏幕的位置 使用的也是屏幕坐標(biāo)系統(tǒng) 3 窗口坐標(biāo)系統(tǒng) 窗口坐標(biāo)系統(tǒng)以窗口左上角為坐標(biāo)原點 它包含了窗口控制菜單 標(biāo)題欄等內(nèi)容 一般情況下很少在窗口標(biāo)題欄上繪圖 因此這種坐標(biāo)系統(tǒng)很少使用 6 1圖形設(shè)備接口 6 1 4與繪圖有關(guān)的類和結(jié)構(gòu)在圖形繪制操作中 常常需要使用MFC中的CPoint CSize和CRect等簡單數(shù)據(jù)類由于CPoint 點 CSize 大小 和CRect 矩形 是對Windows的POINT SIZE和RECT結(jié)構(gòu)的封裝 因此它們可以直接使用各自結(jié)構(gòu)的數(shù)據(jù)成員 如下所示 typedefstructtagPOINT LONGx 點的x坐標(biāo)LONGy 點的y坐標(biāo) POINT typedefstructtagSIZE LONGcx 矩形的長度LONGcy 矩形的寬度 SIZE typedefstructtagRECT LONGleft 矩形左上角點的x坐標(biāo)LONGtop 矩形左上角點的y坐標(biāo)LONGright 矩形右下角點的x坐標(biāo)LONGbottom 矩形右下角點的y坐標(biāo) RECT 6 2常用繪圖函數(shù) 6 2 1畫點與畫線1 畫點畫點是最基本的繪圖操作之一 它是通過調(diào)用CDC SetPixel或CDC SetPixelV函數(shù)來實現(xiàn)的 這兩個函數(shù)都是用來在指定的坐標(biāo)上設(shè)置指定的顏色 只不過SetPixelV函數(shù)不需要返回實際像素點的RGB值 正是因為這一點 函數(shù)SetPixelV要比SetPixel快得多 COLORREFSetPixel intx inty COLORREFcrColor COLORREFSetPixel POINTpoint COLORREFcrColor BOOLSetPixelV intx inty COLORREFcrColor BOOLSetPixelV POINTpoint COLORREFcrColor 其中參數(shù)point指定所繪制的點 crColor指定畫點所用的顏色 倘若要在屏幕的 100 100 處畫一個紅色點 則代碼為 pDC SetPixel CPoint 100 100 RGB 255 0 0 實際顯示像素的顏色未必等同于crColor所指定的顏色值 因為有時受設(shè)備限制 不能顯示crColor所指定的顏色值 而只能取其近似值 與上述函數(shù)相對應(yīng)的GetPixel函數(shù)是用來獲取指定點的顏色 COLORREFGetPixel intx inty const COLORREFGetPixel POINTpoint const 6 2常用繪圖函數(shù) 6 2 1畫點與畫線2 畫線畫線也是特別常用的繪圖操作之一 CDC的LineTo和MoveTo函數(shù)就是用來實現(xiàn)畫線功能的兩個函數(shù) 通過這兩個函數(shù)的配合使用 可完成任何直線和折線的繪制操作 CDC MoveTo用來移動當(dāng)前點到指定點 返回當(dāng)前點的坐標(biāo) 它有兩種調(diào)用形式 其函數(shù)原型如下 CPointMoveTo intx inty CPointMoveTo POINTpoint 參數(shù)x為新位置的x坐標(biāo) y為新位置的y坐標(biāo) point為新位置的坐標(biāo) CDC LineTo函數(shù)用來繪制一條從當(dāng)前點到指定點的直線 返回是否繪制成功的標(biāo)志 其原型如下 BOOLLineTo intx inty BOOLLineTo POINTpoint 參數(shù)x為指定點的x坐標(biāo) y為指定點的y坐標(biāo) point為指定點的坐標(biāo) 6 2常用繪圖函數(shù) 6 2 1畫點與畫線3 折線除了LineTo函數(shù)可用來畫線之外 CDC中還提供了一系列用于畫各種折線的函數(shù) 它們主要是Polyline PolyPolyline和PolylineTo 這三個函數(shù)中 Polyline和PolyPolyline既不使用當(dāng)前位置 也不更新當(dāng)前位置 而PolylineTo總是把當(dāng)前位置作為起始點 并且在折線畫完之后 還把折線終點所在位置設(shè)為新的當(dāng)前位置 這幾個函數(shù)的原型如下 BOOLPolyline LPPOINTlpPoints intnCount BOOLPolylineTo constPOINT lpPoints intnCount 這兩個函數(shù)用來畫一系列連續(xù)的折線 參數(shù)lpPoints是POINT或CPoint的頂點數(shù)組 nCount表示數(shù)組中頂點的個數(shù) 它至少為2 BOOLPolyPolyline constPOINT lpPoints constDWORD lpPolyPoints intnCount 此函數(shù)可用來繪制多條折線 其中l(wèi)pPoints同前定義 lpPolyPoints表示各條折線所需的頂點數(shù) nCount表示折線的數(shù)目 6 2常用繪圖函數(shù) 6 2 2矩形和圓角矩形CDC提供的Rectangle和RoundRect函數(shù)分別用于矩形和圓角矩形的繪制 它們的原型如下 BOOLRectangle intx1 inty1 intx2 inty2 BOOLRectangle LPCRECTlpRect BOOLRoundRect intx1 inty1 intx2 inty2 intx3 inty3 BOOLRoundRect LPCRECTlpRect POINTpoint 參數(shù)lpRect的成員left top right bottom分別表示x1 y1 x2 y2 point的成員x y分別表示x3 y3 而x1 y1表示矩形的左上角坐標(biāo) x2 y2表示矩形的右上角坐標(biāo) x3 y3表示繪制圓角的橢圓大小 6 2常用繪圖函數(shù) 6 2 3圓弧和橢圓通過調(diào)用CDC的Arc函數(shù)可以畫一條橢圓弧線或者整個橢圓 這個橢圓的大小是由其外接矩形 本身并不可見 所決定的 Arc函數(shù)的原型如下 BOOLArc intx1 inty1 intx2 inty2 intx3 inty3 intx4 inty4 BOOLArc LPCRECTlpRect POINTptStart POINTptEnd 使用CDC的成員函數(shù)Ellipse 可以使用當(dāng)前筆繪制一個用當(dāng)前畫刷填充的橢圓或圓 其函數(shù)原型如下 BOOLEllipse intx1 inty1 intx2 inty2 BOOLEllipse LPCRECTlpRect 6 3繪圖工具 6 2 1畫筆畫筆是最簡單的一種繪圖工具 同時也是最重要的一種繪圖對象 在現(xiàn)實世界中 可以用不同的筆產(chǎn)生不同的線 這正如繪圖用的彩筆 不同顏色筆產(chǎn)生不同顏色的線 Windows也是利用這種面向?qū)ο蟮拿枋鍪挛锏姆椒?把筆作為一個對象 和現(xiàn)實世界一樣 不同的筆產(chǎn)生不同的線 一個畫筆通常具有寬度 風(fēng)格和顏色三種屬性 畫筆的寬度用來確定所畫的線條寬度 它是用設(shè)備單位表示的 默認的畫筆寬度是一個像素單位 畫筆的顏色確定了所畫的線條顏色 畫筆的風(fēng)格確定了所繪圖形的線型 它通常有實線 虛線 點線 點劃線 雙點劃線 不可見線和內(nèi)框線等七種風(fēng)格 6 3繪圖工具 6 2 1畫筆1 畫筆的創(chuàng)建創(chuàng)建一個修飾畫筆 可以使用CPen類的CreatePen函數(shù) 其原型如下 BOOLCreatePen intnPenStyle intnWidth COLORREFcrColor 參數(shù)nPenStyle nWidth crColor分別用來指定畫筆的風(fēng)格 寬度和顏色 此外 還有一個CreatePenIndirect函數(shù)也是用來創(chuàng)建畫筆對象 它的作用與CreatePen函數(shù)是完全一樣的 只是畫筆的三個屬性不是直接出現(xiàn)在函數(shù)參數(shù)中 而是通過一個LOGPEN結(jié)構(gòu)間接地給出 BOOLCreatePenIndirect LPLOGPENlpLogPen 此函數(shù)用由LOGPEN結(jié)構(gòu)指針指定的相關(guān)參數(shù)創(chuàng)建畫筆 LOGPEN結(jié)構(gòu)如下 typedefstructtagLOGPEN UINTlopnStyle 畫筆風(fēng)格 同上POINTlopnWidth POINT結(jié)構(gòu)的y不起作用 而用x表示畫筆寬度COLORREFlopnColor 畫筆顏色 LOGPEN 6 3繪圖工具 6 2 1畫筆2 使用畫筆在VC NET 通常按照如下步驟來使用畫筆 1 聲明CPen對象 2 初始化畫筆 通過調(diào)用CreatePen成員函數(shù)可以初始化筆 3 將新建的畫筆對象選進設(shè)備場景中 同時保存原畫筆對象的指針 pOldPen pDC SelectObject 4 調(diào)用繪圖函數(shù)生成圖形 5 選擇設(shè)備場景的原有筆對象 3 畫筆工具的操作示例 6 3繪圖工具 6 2 2畫刷1 畫刷的屬性畫刷的屬性通常包括填充色 填充圖案和填充樣式三種 畫刷的填充色和畫筆顏色一樣 都是使用COLORREF顏色類型 畫刷的填充圖案通常是用戶定義的8 8位圖 而填充樣式往往是CDC內(nèi)部定義的一些特性 它們都是以HS 為前綴的標(biāo)識 2 畫刷的創(chuàng)建CBrush類根據(jù)畫刷屬性提供了相應(yīng)的創(chuàng)建函數(shù) 例如創(chuàng)建填充色畫刷和填充樣式畫刷的函數(shù)為CreateSolidBrush和CreateHatchBrush 它們的原型如下 BOOLCreateSolidBrush COLORREFcrColor 創(chuàng)建填充色畫刷BOOLCreateHatchBrush intnIndex COLORREFcrColor 創(chuàng)建填充樣式畫刷其中 nIndex用來指定畫刷的內(nèi)部填充樣式 而crColor表示畫刷的填充色 與畫筆相類似 也有一個LOGBRUSH邏輯結(jié)構(gòu)用于畫刷屬性的定義 并通過CBrush的成員函數(shù)CreateBrushIndirect來創(chuàng)建 其原型如下 BOOLCreateBrushIndirect constLOGBRUSH lpLogBrush 6 3繪圖工具 6 2 2畫刷3 畫刷的使用在VC NET 通常按照如下步驟來使用畫刷 1 生成CBrush的實例 刷子以多種樣式和顏色出現(xiàn)在CBrush CBrush CBrush CBrush COLORREFcrColor CBrush intnIndex COLORREFcrColor 上述函數(shù)的參數(shù)crColor指定刷子顏色 nIndex參數(shù)指定刷子圖案 其值如表8 7所示 2 調(diào)用相應(yīng)的成員函數(shù)初始化刷子 3 將所創(chuàng)建的畫刷選入設(shè)備環(huán)境 同時保存原畫刷對象的指針 4 調(diào)用繪圖函數(shù)生成圖形 5 恢復(fù)原先設(shè)備環(huán)境中的畫刷 6 3繪圖工具 6 2 2畫刷3 畫刷的使用 6 3繪圖工具 6 2 3繪圖示例EX06B 6 4字體與文字處理 6 4 1字體的屬性字體的屬性有很多 但其主要屬性有字樣 風(fēng)格和尺寸三個 字樣是字符書寫和顯示時表現(xiàn)出的特定模式 例如 對于漢字 通常有宋體 楷體 仿宋 黑體 隸書以及幼圓等多種字樣 字體風(fēng)格主要表現(xiàn)為字體的粗細和是否傾斜等特點 字體尺寸是用來指定字符所占區(qū)域的大小 通常用字符高度來描述 字體尺寸可以取毫米或英寸作為單位 但為了直觀起見 也常常采用一種稱為 點 的單位 一點約折合為1 72英寸 對于漢字 還常用 號 數(shù)來表示字體尺寸 初號字最大 以下依次為小初 一號 小一 二號 小二 如此類推 字號越大 字體尺寸越小 6 4字體與文字處理 6 4 2字體的創(chuàng)建在VC NET中 創(chuàng)建字體需要調(diào)用CFont類的成員函數(shù)CreateFont Indirect 或CreatePointFont Indirect 來初始化 創(chuàng)建字體函數(shù)CFont類的字體創(chuàng)建成員函數(shù)的原型為 BOOLCreateFont intnHeight intnWidth intnEscapement intnOrientation intnWeight BYTEbItalic BYTEbUnderline BYTEcStrikeOut BYTEnCharSet BYTEnOutPrecision BYTEnClipPrecision BYTEnQuality BYTEnPitchAndFamily LPCTSTRlpszFaceName BOOLCreateFontIndirect constLOGFONT lpLogFont BOOLCreatePointFont intnPointSize LPCTSTRlpszFaceName CDC pDC NULL BOOLCreatePointFontIndirect constLOGFONT lpLogFont CDC pDC NULL 其中CreatePointFont提供了創(chuàng)建字體的一種簡單方法 nPointSize為字體的大小 以0 1點 像素 墨點 磅數(shù) 為單位lpszFaceName為字體名稱字符串的指針若pDC非空 則系統(tǒng)會將設(shè)備單位點自動轉(zhuǎn)換為pDC中的映射模式所指定的邏輯單位 6 4字體與文字處理 6 4 3文本輸出函數(shù)文本的最終輸出不僅依賴于文本的字體 而且還跟文本的顏色 對齊方式等有很大關(guān)系 CDC類提供了四個輸出文本的成員函數(shù) TextOut ExtTextOut DrawText和TabbedTextOut virtualBOOLTextOut intx inty LPCTSTRlpszString intnCount BOOLTextOut intx inty constCString 6 4字體與文字處理 6 4 4文本屬性控制1 設(shè)置文本的背景色缺省時 在繪制圖形或者輸出文本時 背景顏色是白色 可以使用CDC的成員函數(shù)SetBkColor函數(shù)來設(shè)置新的背景顏色 函數(shù)原型為 virtualCOLORREFSetBkColor COLORREFcrcolor 2 控制文本的背景色背景模式可用函數(shù)SetBkMode來設(shè)置 它設(shè)置當(dāng)前的背景模式并返回原來的背景模式 該函數(shù)的原型為 intSetBkMode intnBkMode 參數(shù)nkbmode指定背景模式 其值可以是OPAQUE或者TRANSPARENT 如果值為OPAQUE 則顯示時背景都改變?yōu)楫?dāng)前背景顏色 如果值為TRANSPARENT 則不改變背景顏色 此時 任何SetBkColor函數(shù)調(diào)用都無效 缺省的背景模式為OPAQUE 3 設(shè)置文本的排列方式在文本顯示時遇到的另一個問題是文本的排列方式 它控制文本和給定點的相對位置 在一個圖形中加字符說明時 常常知道一個字符串的某一個邊界 如左邊界不應(yīng)超過某個位置 或右邊界不應(yīng)超過某個位置 或顯示的幾行字符串的中心點對齊等 利用CDC的成員函數(shù)SetTextAlign函數(shù)就能方便地實現(xiàn)這種控制 其原型為 UINTSetTextAlign UINTnFlags 6 4字體與文字處理 6 4 5字體示例EX06C 6 5位圖 6 5 1位圖文件的格式DIB位圖文件分為四部分 1 位圖文件頭BITMAPFILEHEADER 位圖文件頭BITMAPFILEHEADER是一個結(jié)構(gòu)體 長度為14字節(jié) 2 位圖信息頭BITMAPINFOHEADER 位圖信息頭BITMAPINFOHEADER也是一個結(jié)構(gòu)體 長度為40字節(jié) 3 調(diào)色板Palette調(diào)色板Palette針對的是需要調(diào)色板的位圖 即單色 16色和256色位圖 對于不以調(diào)色板方式存儲的位圖 則無此項信息 調(diào)色板是一個數(shù)組 共有biClrUsed個元素 如果該值為0 則有2biBitCount個元素 數(shù)組中每個元素是一個RGBQUAD結(jié)構(gòu)體 長度為4個字節(jié) 4 實際的位圖數(shù)據(jù)ImageDate對于用到調(diào)色板的位圖 實際的圖象數(shù)據(jù)ImageDate為該象素的顏色在調(diào)色板中的索引值 對于真彩色圖 圖象數(shù)據(jù)則為實際的R G B值 a 單色位圖 用1bit就可以表示象素的顏色索引值 b 16色位圖 用4bit可以表示象素的顏色索引值 c 256色位圖 1個字節(jié)表示1個象素的顏色索引值 d 真彩色 3個字節(jié)表示1個象素的顏色R G B值 6 5位圖 6 5 2CBitmap的使用方法 6 6綜合實例 建立賓館管理系統(tǒng)的啟動界面 思考與練習(xí)1 在MFC中常用的設(shè)備環(huán)境類有哪些 它們有什么不同 2 在繪圖程序中怎樣設(shè)置圖形的顏色 3 什么是字體 如何構(gòu)造和定義字體 4 CDC中文本繪制函數(shù)有哪些 它們有何不同 5 什么是位圖 如何將項目中的位圖顯示出來 6 畫筆的屬性有哪幾種 如何使用畫筆 7 編寫一個記事本程序 實現(xiàn)文本的格式化 要求使用字體對話框來設(shè)置文本字體的格式 8 編寫一個簡單的繪圖程序 當(dāng)單擊工具欄上圖形時 可以用選定的顏色繪出相應(yīng)的圖形- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 圖像 編程 文字處理
鏈接地址:http://m.appdesigncorp.com/p-8754619.html