1. 理論課程
§ 1-1 什麼是多媒體?
電腦視覺監控產學研聯盟
§ 1-2 多媒體和超媒體
§ 1-3 全球資訊網
維基百科:
a. CSS
b. XML
c. Synchronized Multimedia Integration Language
§ 1-4 多媒體軟體工具概述
§ 1-5 延伸閱讀
§ 1-6 習題
2. 實作課程
星期四, 9月 30, 2010
星期四, 9月 23, 2010
BNEXT: HDCP 主密鑰外洩, DVD、藍光防盜拷機制全面瓦解
數位時代網站新聞
撰文者: 戴佳慧 發表日期: 2010/09/20
用以防止非法拷貝 DVD、藍光數位內容的 HDCP 規格,上周傳出已遭駭客破解。制定 HDCP 的 Intel 也向媒體承認,網路上流傳的破解屬實。換言之,市面上所有高畫質 DVD、藍光光碟在技術上都已能夠被解碼、拷貝,高畫質數位內容的保護機制全面瓦解。
HDCP(High Bandwidth Digital Content Protection)是 Intel 開發用來防止高畫質影音資料遭到非法拷貝的機制。生產DVD或藍光播放設備的廠商,必須獲得 HDCP 委員會許可,支付權利金,並且生產符合 HDCP 的規定的商品。
HDCP 會將通過 DVI 和 HDMI 介面的影音資料加密,加密過程是以串流的方式進行,因此每個畫面都會產生不同的金鑰。影音播放器(或電腦顯示卡)和顯示器雙方都必須內建 HDCP 晶片才能夠解密,以高畫質正常播放影音內容,否則只會出現雜訊或 480p 以下的低解析度畫面。
由於 HDCP 使用的是線性密鑰,密碼學家早在 2001 年就對 HDCP 的安全性提出質疑,但 HDCP 還是在 2004 年通過美國聯邦通訊委員會 FCC 的審查正式上路,成為數位內容保護的標準。直到上星期 Pastebin 網站出現一篇不具名的文章,內容包含 HDCP 完整主密鑰和破解方法,引起媒體和大眾熱烈討論,Intel 才正式承認 HDCP 已遭到破解。
HDCP 的主密鑰外洩,對數位影音版權將產生莫大衝擊。Intel 一方面展開調查,一方面提醒大眾,拷貝高畫質 DVD 和藍光屬非法行為,且 HDCP 仍受專利權法保護,Intel 將會對非法使用 HDCP 密鑰的廠商採取法律行動。
撰文者: 戴佳慧 發表日期: 2010/09/20
用以防止非法拷貝 DVD、藍光數位內容的 HDCP 規格,上周傳出已遭駭客破解。制定 HDCP 的 Intel 也向媒體承認,網路上流傳的破解屬實。換言之,市面上所有高畫質 DVD、藍光光碟在技術上都已能夠被解碼、拷貝,高畫質數位內容的保護機制全面瓦解。
HDCP(High Bandwidth Digital Content Protection)是 Intel 開發用來防止高畫質影音資料遭到非法拷貝的機制。生產DVD或藍光播放設備的廠商,必須獲得 HDCP 委員會許可,支付權利金,並且生產符合 HDCP 的規定的商品。
HDCP 會將通過 DVI 和 HDMI 介面的影音資料加密,加密過程是以串流的方式進行,因此每個畫面都會產生不同的金鑰。影音播放器(或電腦顯示卡)和顯示器雙方都必須內建 HDCP 晶片才能夠解密,以高畫質正常播放影音內容,否則只會出現雜訊或 480p 以下的低解析度畫面。
由於 HDCP 使用的是線性密鑰,密碼學家早在 2001 年就對 HDCP 的安全性提出質疑,但 HDCP 還是在 2004 年通過美國聯邦通訊委員會 FCC 的審查正式上路,成為數位內容保護的標準。直到上星期 Pastebin 網站出現一篇不具名的文章,內容包含 HDCP 完整主密鑰和破解方法,引起媒體和大眾熱烈討論,Intel 才正式承認 HDCP 已遭到破解。
HDCP 的主密鑰外洩,對數位影音版權將產生莫大衝擊。Intel 一方面展開調查,一方面提醒大眾,拷貝高畫質 DVD 和藍光屬非法行為,且 HDCP 仍受專利權法保護,Intel 將會對非法使用 HDCP 密鑰的廠商採取法律行動。
星期日, 9月 19, 2010
Week 2: What Is C++ Builder ?
1. 實作課程
a. C++ Builder [ 維基百科, 官網, 台灣總代理興德資訊 ]
C++ Builder 是 CodeGear 針對 C++ 程式語言所開發的快速應用程式開發工具 ( Rapid Application Development, RAD ), CodeGear 為 C++ 加入了許多的視覺化元件, 配合整合開發環境 ( Integrated Development Environment, IDE ), 推出了 C++ Builder 這個產品, 加速了一個視窗應用程式的開發。
b. Basic Concepts of C++ Builder Programming
(1) applications
(2) units
(3) forms
(4) VCL ( visual component library )
(5) components, component palette

(6) objects
(7) object inspector

(8) properties
(9) events
(10) methods
(11) event-driven programming ( 事件驅動程式設計 )
a. C++ Builder [ 維基百科, 官網, 台灣總代理興德資訊 ]
C++ Builder 是 CodeGear 針對 C++ 程式語言所開發的快速應用程式開發工具 ( Rapid Application Development, RAD ), CodeGear 為 C++ 加入了許多的視覺化元件, 配合整合開發環境 ( Integrated Development Environment, IDE ), 推出了 C++ Builder 這個產品, 加速了一個視窗應用程式的開發。
b. Basic Concepts of C++ Builder Programming
(1) applications
(2) units
(3) forms
(4) VCL ( visual component library )
(5) components, component palette
(6) objects
(7) object inspector
(8) properties
(9) events
(10) methods
(11) event-driven programming ( 事件驅動程式設計 )
星期四, 9月 16, 2010
Week 1: 2010F 課程進行方式
1. 教科書:
(理論) 多媒體概論 Fundamentals of Multimedia
原著: Li & Drew 譯者: 徐永煜 等
代理: 高立圖書有限公司

( PART I ) 多媒體創作與資料表示法
第一章 多媒體緒論
第二章 多媒體創作與工具
第三章 圖形與影像的表示方式
第四章 影像與視訊的色彩
第五章 視訊的基本概念
第六章 數位音訊的基礎
(實作) C++ Builder 6 完全攻略
作者: Time 研究室
出版: 上奇圖書有限公司

2. 評分原則:
(理論) 小考 ( 45% )
(實作) 作業部落格 Homework Show @ DMC 繳交程式作業 ( 45% )
(課堂表現) 出缺席, 上課玩 Game, 睡覺...等 ( 10% )
3. 點名簽到: 每週第一堂課就會發 簽名單 給同學簽到。
(理論) 多媒體概論 Fundamentals of Multimedia
原著: Li & Drew 譯者: 徐永煜 等
代理: 高立圖書有限公司
( PART I ) 多媒體創作與資料表示法
第一章 多媒體緒論
第二章 多媒體創作與工具
第三章 圖形與影像的表示方式
第四章 影像與視訊的色彩
第五章 視訊的基本概念
第六章 數位音訊的基礎
(實作) C++ Builder 6 完全攻略
作者: Time 研究室
出版: 上奇圖書有限公司
2. 評分原則:
(理論) 小考 ( 45% )
(實作) 作業部落格 Homework Show @ DMC 繳交程式作業 ( 45% )
(課堂表現) 出缺席, 上課玩 Game, 睡覺...等 ( 10% )
3. 點名簽到: 每週第一堂課就會發 簽名單 給同學簽到。
星期四, 1月 07, 2010
星期五, 1月 01, 2010
Week 16: RIFF & WAV Format
1. RIFF: Resource Interchange File Format ( 資源交換檔案標準 )
2. 如何在 C++ Builder 程式中, 播放一段 WAV 檔

3. AAC Audio
4. PCM: Pulse-code modulation ( 脈衝編碼調變 )
5. 作業七: 撰寫一個可以處理音訊的程式。
例如: 修改聲音大小的功能。
2. 如何在 C++ Builder 程式中, 播放一段 WAV 檔
3. AAC Audio
4. PCM: Pulse-code modulation ( 脈衝編碼調變 )
5. 作業七: 撰寫一個可以處理音訊的程式。
例如: 修改聲音大小的功能。
星期日, 12月 20, 2009
Week 15: Audio File Format
1. Audio File Format ( 音頻檔案格式 )
2. Apple's 數位音樂入門
從 CD 匯入音樂到 iTunes




I Dreamed There Was No War 1:37"
檔案格式 檔案大小
WAV 17,277,836 位元組
AIFF 17,280,112 位元組
Apple Lossless 8,175,810 位元組
MP3 2,354,555 位元組
AAC 1,591,708 位元組
3. 作業六: 請轉寫一個程式, 可以將 WAV 檔頭資料顯示出來。
( 可以將音訊波形顯示出來者尤佳 )
2. Apple's 數位音樂入門
從 CD 匯入音樂到 iTunes
I Dreamed There Was No War 1:37"
檔案格式 檔案大小
WAV 17,277,836 位元組
AIFF 17,280,112 位元組
Apple Lossless 8,175,810 位元組
MP3 2,354,555 位元組
AAC 1,591,708 位元組
3. 作業六: 請轉寫一個程式, 可以將 WAV 檔頭資料顯示出來。
( 可以將音訊波形顯示出來者尤佳 )
星期六, 12月 19, 2009
Week 14: GIF Format (2)
1. 範例程式講解
a. 彩色或灰階 BMP 影像之自動讀取
b. GIF 影像調色盤之讀取
2. 導讀 Wikipedia 之 GIF 條目: Graphics Interchange Format
3. 課程重要公告:
請同學於下週二 (12/22) 以前完成上傳作業 1~3 , 逾期後果請自行負責。
a. 彩色或灰階 BMP 影像之自動讀取
b. GIF 影像調色盤之讀取
2. 導讀 Wikipedia 之 GIF 條目: Graphics Interchange Format
3. 課程重要公告:
請同學於下週二 (12/22) 以前完成上傳作業 1~3 , 逾期後果請自行負責。
星期四, 12月 17, 2009
星期二, 12月 15, 2009
範例程式: BMP 影像讀取
範例程式: 彩色或灰階 BMP 影像之自動讀取
說明: 這個範例程式可以自動判別所開啟的影像是 24 位元之彩色影像, 或是 8 位元的灰階影像, 不論影像寬度是否為 4 的倍數, 都可以成功讀取其影像內容, 顯示在影像元件中。
DMC-2009F-SP06.txt
說明: 這個範例程式可以自動判別所開啟的影像是 24 位元之彩色影像, 或是 8 位元的灰階影像, 不論影像寬度是否為 4 的倍數, 都可以成功讀取其影像內容, 顯示在影像元件中。
DMC-2009F-SP06.txt
星期四, 12月 10, 2009
Week 13: GIF format (1)
1. 維基百科中的 GIF 影像格式:
a. 正體中文版資料
b. 英文版資料: Graphics Interchange Format
本週同學上課的情況很不錯, 主動提問非常踴躍,
所以有來上課的同學, 學期總分都加 1 分。
2. 第五個作業:
讀出 GIF 檔案中的調色盤資料, 並顯示出來。然後, 針對調色盤色彩之亮度做排序。


經過用明亮度排序後的調色盤:

a. 正體中文版資料
b. 英文版資料: Graphics Interchange Format
本週同學上課的情況很不錯, 主動提問非常踴躍,
所以有來上課的同學, 學期總分都加 1 分。
2. 第五個作業:
讀出 GIF 檔案中的調色盤資料, 並顯示出來。然後, 針對調色盤色彩之亮度做排序。
經過用明亮度排序後的調色盤:
星期四, 12月 03, 2009
Week 12: BMP format (4)
1. 講解範例程式 DMC-2009F-SP04.txt
範例程式中, 我們使用了 TBitmap::ScanLine 這個 property, 存放著 Bitmap 某一橫列的色彩值在記憶體中存放的起始指標, 有了這個指標, 我們就可以直接在記憶體中直接存取, 修改影像內容。
2. 請同學將範例程式 DMC-2009F-SP04.txt 改成可以讀取影像寬度可以不是 4 的倍數的彩色影像。
BMP format 在儲存影像時, 把每一橫列所需的byte數都對齊為 4 的倍數。假設, 一張 24-bit 彩色影像的寬度為 250, 每一橫列所需之記憶體為 250 * BitCount / 8 = 750, 那麼在存成 bmp 檔時, 每一行最後會補上 2 bytes, 一共需要 752 bytes。
3. 範例程式 DMC-2009F-SP05.txt
4. 請同學將範例程式 DMC-2009F-SP05.txt 改成可以讀取灰階 bmp 影像 or 彩色 bmp 影像。
同學可以藉由檔頭資料中的 iBitCount 來判斷所讀取的影像是彩色影像或是灰階影像, 如果是灰階影像, 必須增加一個灰階調色盤給影像元件 imOriginal, 這樣才可以正確顯示出來。
灰階影像與灰階調色盤, 請參考範例程式 DMC-2009F-SP03.txt
範例程式中, 我們使用了 TBitmap::ScanLine 這個 property, 存放著 Bitmap 某一橫列的色彩值在記憶體中存放的起始指標, 有了這個指標, 我們就可以直接在記憶體中直接存取, 修改影像內容。
2. 請同學將範例程式 DMC-2009F-SP04.txt 改成可以讀取影像寬度可以不是 4 的倍數的彩色影像。
BMP format 在儲存影像時, 把每一橫列所需的byte數都對齊為 4 的倍數。假設, 一張 24-bit 彩色影像的寬度為 250, 每一橫列所需之記憶體為 250 * BitCount / 8 = 750, 那麼在存成 bmp 檔時, 每一行最後會補上 2 bytes, 一共需要 752 bytes。
3. 範例程式 DMC-2009F-SP05.txt
4. 請同學將範例程式 DMC-2009F-SP05.txt 改成可以讀取灰階 bmp 影像 or 彩色 bmp 影像。
同學可以藉由檔頭資料中的 iBitCount 來判斷所讀取的影像是彩色影像或是灰階影像, 如果是灰階影像, 必須增加一個灰階調色盤給影像元件 imOriginal, 這樣才可以正確顯示出來。
灰階影像與灰階調色盤, 請參考範例程式 DMC-2009F-SP03.txt
星期四, 11月 26, 2009
星期三, 11月 18, 2009
Week 09: BMP format (3)
第四個作業 (Homework 4):
請讀取一張 BMP 影像, 並將其影像內容顯示於 C++ Builder 的影像元件之中。
範例程式: DMC-2009F-SP04.txt
說明:
這個範例程式已經成功地解決同學們在課堂上, 如果沒有把 fseek 加入到迴圈中, 無法正確讀取影像內容的問題, 經過實驗發現, fread 從檔案中成功讀取資料後, 確實會自動將指標移到下一筆資料, 不需要我們用 fseek 指令設定; 然而, fread 會讀取失敗(傳回值為 0 ), 是因為在開啟檔案時, 必須設定開啟模式為"rb"。
因此, 如果要用上面的範例程式讀取一張彩色影像, 其寬度不是 4 的倍數時, 就會發生錯誤的情況。
以下是一張影像寬度為 250 的影像。

用本範例程式讀取出來的結果。

請讀取一張 BMP 影像, 並將其影像內容顯示於 C++ Builder 的影像元件之中。
範例程式: DMC-2009F-SP04.txt
說明:
這個範例程式已經成功地解決同學們在課堂上, 如果沒有把 fseek 加入到迴圈中, 無法正確讀取影像內容的問題, 經過實驗發現, fread 從檔案中成功讀取資料後, 確實會自動將指標移到下一筆資料, 不需要我們用 fseek 指令設定; 然而, fread 會讀取失敗(傳回值為 0 ), 是因為在開啟檔案時, 必須設定開啟模式為"rb"。
imBMP = fopen(OpenDialog1->FileName.c_str(), "rb");然而, 這個程式還沒有處理 bmp 在儲存處理影像時, 把每一橫列所需的byte數都對齊為 4 的倍數的狀況。假設, 一張 24-bit 彩色影像的寬度為 250, 每一橫列所需之記憶體為 250 * BitCount / 8 = 750, 那麼在存成 bmp 檔時, 每一行最後會補上 2 bytes, 一共需要 752 bytes。
因此, 如果要用上面的範例程式讀取一張彩色影像, 其寬度不是 4 的倍數時, 就會發生錯誤的情況。
以下是一張影像寬度為 250 的影像。
用本範例程式讀取出來的結果。
星期四, 11月 05, 2009
Week 08: BMP Format (2)
// 宣告一個資料型態 BMP_Header_TYPE,
// 其結構為 BMP 檔頭中, 有關 File Information 的部分
typedef struct {
unsigned char ucTyte[2]; // 固定為 'BM', 用以辨認是否為 DIB
unsigned char ucFileSize[4]; // 檔案長度
short sReserved1; // 固定為 0 , 保留未用
short sReserved2; // 固定為 0 , 保留未用
unsigned char ucOffset[4]; // 儲存圖像資料到檔頭的距離
} BMP_Header_TYPE;
// 宣告一個變數 Header[1], 其型態為剛剛宣告的 BMP_Header_TYPE
BMP_Header_TYPE Header[1];
// 宣告一個資料型態 BitmapInfoHeader_TYPE ,
// 其結構為 BMP 檔頭中, 有關 Bitmap Information 的部分
typedef struct {
unsigned char ucSize[4]; // 宣告圖像基本資料的大小 ( = 40 )
unsigned char ucWidth[4]; // 圖像的寬度, 以 pixel 為單位
unsigned char ucHeight[4]; // 圖像的高度, 以 pixel 為單位
unsigned char ucPlanes[2]; // 固定存入 1
unsigned char ucBitCount[2]; // 宣告每個 pixel 需要多少 bit 儲存
unsigned char ucCompression[4];
// 宣告圖像壓縮方式, 可能的值有 3 種 : 0, 1, 2
unsigned char ucImageSize[4];
// 影像大小, 以 Byte 為單位 ( W*H*BitCount / 8 )
unsigned char ucXPixelsPerMeter[4];
// 宣告圖像在 X 方向於 1 公尺有多少 pixel ,
unsigned char ucYPixelsPerMeter[4];
// 宣告圖像在 Y 方向於 1 公尺有多少 pixel ,
unsigned char ucUsedColor[4];
// 宣告圖像資料實際用到的顏色數目 ( 0表示用光 )
unsigned char ucImportantColor[4];
// 宣告調色盤中, 多少顏色在顯示時是重要的
} BitmapInfoHeader_TYPE;
// 宣告一個變數 BitmapInfoHeader[1],
// 其型態為剛剛宣告的 BitmapInfoHeader_TYPE
BitmapInfoHeader_TYPE BitmapInfoHeader[1];
// 宣告一個資料型態 Palette_COLOR_TYPE ,
// 其結構為 BMP 檔頭中, 有關 Palette 的部分
typedef struct {
Byte bBlue;
Byte bGreen;
Byte bRed;
Byte bReserved;
} Palette_COLOR_TYPE;
// 宣告 256 個變數 PaletteColors[256] 用來儲存調色盤的顏色,
// 型態為剛宣告的 Palette_COLOR_TYPE
Palette_COLOR_TYPE PaletteColors[256];
// 宣告 2 個變數; 儲存檔案結束控制碼
unsigned char ucFileEnd[2]; // 檔案的最後有 2 個 byte 的 0
參考程式
// 其結構為 BMP 檔頭中, 有關 File Information 的部分
typedef struct {
unsigned char ucTyte[2]; // 固定為 'BM', 用以辨認是否為 DIB
unsigned char ucFileSize[4]; // 檔案長度
short sReserved1; // 固定為 0 , 保留未用
short sReserved2; // 固定為 0 , 保留未用
unsigned char ucOffset[4]; // 儲存圖像資料到檔頭的距離
} BMP_Header_TYPE;
// 宣告一個變數 Header[1], 其型態為剛剛宣告的 BMP_Header_TYPE
BMP_Header_TYPE Header[1];
// 宣告一個資料型態 BitmapInfoHeader_TYPE ,
// 其結構為 BMP 檔頭中, 有關 Bitmap Information 的部分
typedef struct {
unsigned char ucSize[4]; // 宣告圖像基本資料的大小 ( = 40 )
unsigned char ucWidth[4]; // 圖像的寬度, 以 pixel 為單位
unsigned char ucHeight[4]; // 圖像的高度, 以 pixel 為單位
unsigned char ucPlanes[2]; // 固定存入 1
unsigned char ucBitCount[2]; // 宣告每個 pixel 需要多少 bit 儲存
unsigned char ucCompression[4];
// 宣告圖像壓縮方式, 可能的值有 3 種 : 0, 1, 2
unsigned char ucImageSize[4];
// 影像大小, 以 Byte 為單位 ( W*H*BitCount / 8 )
unsigned char ucXPixelsPerMeter[4];
// 宣告圖像在 X 方向於 1 公尺有多少 pixel ,
unsigned char ucYPixelsPerMeter[4];
// 宣告圖像在 Y 方向於 1 公尺有多少 pixel ,
unsigned char ucUsedColor[4];
// 宣告圖像資料實際用到的顏色數目 ( 0表示用光 )
unsigned char ucImportantColor[4];
// 宣告調色盤中, 多少顏色在顯示時是重要的
} BitmapInfoHeader_TYPE;
// 宣告一個變數 BitmapInfoHeader[1],
// 其型態為剛剛宣告的 BitmapInfoHeader_TYPE
BitmapInfoHeader_TYPE BitmapInfoHeader[1];
// 宣告一個資料型態 Palette_COLOR_TYPE ,
// 其結構為 BMP 檔頭中, 有關 Palette 的部分
typedef struct {
Byte bBlue;
Byte bGreen;
Byte bRed;
Byte bReserved;
} Palette_COLOR_TYPE;
// 宣告 256 個變數 PaletteColors[256] 用來儲存調色盤的顏色,
// 型態為剛宣告的 Palette_COLOR_TYPE
Palette_COLOR_TYPE PaletteColors[256];
// 宣告 2 個變數; 儲存檔案結束控制碼
unsigned char ucFileEnd[2]; // 檔案的最後有 2 個 byte 的 0
參考程式
星期四, 10月 29, 2009
Week 07: BMP Format (1)
1. 本週所要練習的題目是如何從BMP檔案中讀出相關的圖片資料 ?
BMP Format (BMP檔案格式 )
2. 同學如果不確定從檔案中讀取出來的資料正不正確, 可以用 PSPad 這個文書編輯器來檢視檔案的原始內容:

3. 範例程式: 用結構 struct 的方式, 一次讀入一大堆資料 ...
DMC-2009F-SP02.txt
4. 第三個作業(homework 3) :
請讀取 BMP 影像的檔頭資料, 然後將其顯示出來。
BMP Format (BMP檔案格式 )
2. 同學如果不確定從檔案中讀取出來的資料正不正確, 可以用 PSPad 這個文書編輯器來檢視檔案的原始內容:
3. 範例程式: 用結構 struct 的方式, 一次讀入一大堆資料 ...
DMC-2009F-SP02.txt
4. 第三個作業(homework 3) :
請讀取 BMP 影像的檔頭資料, 然後將其顯示出來。
Week 06: File Access
1.本週所要練習的指令是 C 語言中關於檔案存取的指令:
a. fopen
b. fclose
c. fseek
d. fread
e. fwrite
2. 範例程式:
DMC-2009F-SP01.txt
a. fopen
b. fclose
c. fseek
d. fread
e. fwrite
2. 範例程式:
DMC-2009F-SP01.txt
星期四, 10月 15, 2009
星期四, 10月 08, 2009
Week 04: Data and Meta-Data
1. Data & Meta-Data
a. 文字檔(.txt)與文件檔(.doc)之間的差異
b. 記事本與 MS Word 之間的差異
c. Blogger 部落格文件編輯器的兩個模式之間的差異
2. BCB Programming 基本概念: (第二次講解)
a. 元件 (component)
b. 屬性 (property)
c. 事件 (event)
d. 方法 (method)
e. 事件處理程序 (event-driven procedure)
我們今天特地再次講解了什麼是物件(object), 屬性(property), 事件(event), 與方法(method)。並用 BCB 中的 Object Inspector 作示範, 用實例來講解這些名詞之間的關係。
3. BCB 程式示範
a. Panel component
b. ScrollBox component
c. Visible property
a. 文字檔(.txt)與文件檔(.doc)之間的差異
b. 記事本與 MS Word 之間的差異
c. Blogger 部落格文件編輯器的兩個模式之間的差異
2. BCB Programming 基本概念: (第二次講解)
a. 元件 (component)
b. 屬性 (property)
c. 事件 (event)
d. 方法 (method)
e. 事件處理程序 (event-driven procedure)
我們今天特地再次講解了什麼是物件(object), 屬性(property), 事件(event), 與方法(method)。並用 BCB 中的 Object Inspector 作示範, 用實例來講解這些名詞之間的關係。
3. BCB 程式示範
a. Panel component
b. ScrollBox component
c. Visible property
星期五, 10月 02, 2009
Week 03: 如何在影像物件上畫線?
1. 本週程式示範:
a. OpenImageDialog,
b. ColorDialog
c. MoveTo(); LineTo();
d. Image1->Canvas->Pen->Color
e. Image1->Canvas->Pen->Width
2. 有關在影像上繪圖的相關資料, 請同學參考課本 § 11-5 繪圖功能
類別 Canvas
3. 第一個作業: 請完成本週課堂上所練習之程式, 並將程式執行結果秀到 Homework Show @ DMC 作業部落格中, 並寫上程式撰寫心得。
a. OpenImageDialog,
b. ColorDialog
c. MoveTo(); LineTo();
d. Image1->Canvas->Pen->Color
e. Image1->Canvas->Pen->Width
2. 有關在影像上繪圖的相關資料, 請同學參考課本 § 11-5 繪圖功能
類別 Canvas
3. 第一個作業: 請完成本週課堂上所練習之程式, 並將程式執行結果秀到 Homework Show @ DMC 作業部落格中, 並寫上程式撰寫心得。
訂閱:
文章 (Atom)