2009年10月7日 星期三

HW1















(點圖可放大)上圖是我第一次接觸到BCB程式軟體時老師叫我們做的第一個執行程式,第一頭課都還沒自己操作過 ,所以一開始覺得有些枯燥乏味,不過自己動手操作之後才發現,其實這個軟體還不錯玩,讓我越來越感興趣嚕。













(點圖可放大)此動作是當我指向照片上的隨意一處,它就會顯示出所在的XY座標以及RGB的值, 請注意右邊有個PnColor的物件,那是顯示出我所在位置的顏色。














(點圖可放大)上圖此動作為當我按右鍵時,它會顯示出我所在位置的顏色,此動作跟前面的動作有些許不同喔! 因為這是改變了右鍵的功能,一開始我還設錯程式碼的位置呢!之後才警覺到每個程式碼都是環環 相扣的,一旦你放錯了一個位置,那就大錯特錯了。




(點圖可放大)此一動作為可以改變畫筆的顏色,讓你隨心所欲的在照片上亂塗鴉,而且你塗鴉時是必須按住左鍵才行的,這張照片就會被畫得亂七八糟了。

其實老師放學前有叫我們做了一個新的指令,也就是在軟體裡面設一個save的按鈕,使用這個按鈕可以把圖片以及軟體給儲存起來,不過在做這一動作的時候,發現一個問題,也就是我圖片儲存是可以的,不過我想要在自己存起程式碼時,發覺也是可以的,但事在我開啟我所存的程式碼時出現的卻是一大堆亂碼,這一部份我想還必須再研究研究,這一課成真是令我越來越感興趣了,一想到其時如果這樣子繼續學下去的話,說不定以後自己就可以親手設計許多物件出來了!一想到這裡我就感到莫名的興奮,其實課本上也是講解得相當得清楚了,有時間可要多多詳細閱讀呢!

HW1

這是數媒的第一項作業!!主要是製做課堂中所學的程式,所以就先使用幾個簡單的範例


一開始成功的作出了圖層的XY座標以及3色值,但是有遇到一個問題,當開啟的bmp圖過大的時候,圖會蓋到我所設計的3色值,如此一來便會造成顯示不良。
(點圖可放大)

圖中圈起來的地方就是遇到的問題,也可能是因為排版的關係,不然就需要在設定值那邊調整了,但是以書中寫的Position來調整顯示位置還是不行,這部分還要研究一下。

接下來,製作的是利用左鍵來進行畫線,在MouseDown裡面設計
if(Button==mbLeft)Image1->Canvas->LineTo(X,Y);
這樣就可以制定左鍵的功能了~!!
顏色元件的設定必須使用在Dialogs裡的ColorDialog,並且在選單中設定color
void __fastcall TForm1::Color1Click(TObject *Sender){
ColorDialog1->Execute();Image2->Canvas->Pen->Color=ColorDialog1->Color; }


在圖中就能設定顏色來改變畫線色!


接著,在開啟新的圖片下也確定能夠使用。

再來就是製作Save功能了,但在這裡碰到了難題,原本打算儲存bmp檔,於是沒注意便點選了Dialogs裡的SaveDialogs,結果作出來當然是錯誤的。
如果要儲存圖片的話就跟OpenPictureDialogs一樣有對應的選項"SavePictureDialogs"。
void __fastcall TForm1::save1Click(TObject *Sender){SavePictureDialog1->Execute();Image1->Picture->SaveToFile(SavePictureDialog1->FileName);}

做好SavePictureDialogs功能之後我又遇到問題了,那就是在存檔的時候如果只輸入檔名的話存出來的檔案會無法讀取,必須將副檔名跟著一起輸入才能儲存檔案,關於副檔名這裡可能還有其他東西要設定,但在書中沒有講到這點,可能再問問老師吧。

途中圈起來的紅框(請點圖放大來看)就是在有輸入副檔名跟沒輸入副檔名的結果,有輸入的可以成功開啟,沒輸入的反而會說執行錯誤。

在做完一連串的操作之後,發現那本字典(課本)的內容真的很方便,介紹也算挺詳細的,只是有些地方跟自己實際操作不太相同,也是因為才剛接觸這新軟體不久,很多指令的功用都不清楚,看來還需要再多多摸索。

HW01


C++ Builder

選了數位媒體慨論這門課之後,有想到底會教什麼?以為跟資料結構一樣用C++來寫程式,但讀了一下C++ Builder這本書,才知道C++ Builder對視窗設計的貢獻這麼大,因為它比C++更方便、簡單、快速,一年級就已經體會到C++是蠻困難的東西,更何況要用C++來寫視窗,那可能要高手才行呢!

在課堂上第一次碰到C++ Builder的感覺,有點像我以前學到的VB,老師教了一些指令和程式,都覺得還蠻容易上手,還有非常多樣的元件,要把全部的元件都弄清楚,可能要花不少時間,然後以下是我練習過程與心得。























原來這種事我們也可以容易的做到,我以前還覺得做這些視窗都超難的,結果只要拉一個OpenPictureDialog1就可以開圖了,真是方便。





找了一張圖之後,在Image1MouseMove裡打上:
lblX->Caption=AnsiString(X);
lblY->Caption=AnsiString(Y);
lblRed->Caption=AnsiString(GetRValue(Image1->Canvas->Pixels[X][Y]));
lblGreen->Caption=AnsiString(GetGValue(Image1->Canvas->Pixels[X][Y]));
lblBlue->Caption=AnsiString(GetBValue(Image1->Canvas->Pixels[X][Y]));}
前面兩行是游標到圖的任何一點,就顯現出該點的座標,於上圖中左下角兩格,AnsiString的用意好像是為了以防它有錯誤。
另外三行意思則是游標到圖的某點的RBG數值。
還有圖中下有個紅色的,那是因為我程式內打了,只要我左鍵點某點,那麼該點的顏色就要顯示出來,但是這個程式要打在Image1MouseDown裡的。
課堂上遇到了一個困難,就是左鍵可以有功能,那麼右鍵呢?
我想了很久還是寫不出來,結果老師show出這段程式:
if(Button==mbLeft)
Image1->Canvas->LineTo(X,Y);
if(Button==mbRight)
Image1->Canvas->Pixels[X][Y]=clRed;
如果按左鍵的話,他就會從(0,0)原點到你點的那點連成一條直線,然後右鍵是點一下會出現一個小紅點,另外那條直線還可以用Color1Click這個元件來變換顏色喔。
這次的練習雖然只是入門而已,但是就已經體驗到C++ Builder吸引人的地方,可能只用了這裡面一小部分的元件,也才幾樣而已,但是就讓我知道原來這些視窗設計也可以很容易的製作,讓我覺得這個比VB還好玩多了。

HW1

在網路上抓到免費的起士蛋糕圖,開啟程式,載入圖片,畫紅色的線條如上圖。



這次程式作業,感覺很有趣,也非常實用,雖然在實做時候有點摸不著頭緒,不知道從何做起。親自實作邊看著BCB課本,也遇到不少問題,都需要克服,任意兩 點連成一線和按左鍵和右鍵的函數以及圖片和顏色對話窗與法。
最後才了解到MoveTo(), LineTo(), MouseDown搭配在一起的功能和作用,就跟小畫家程式一樣的實用感覺。

96360465 資工三乙 蕭承傑

如何將寫好的BCB程式移植至未安裝BCB之電腦執行

如果大家要把BCB程式放到沒有安裝BCB的電腦裡去執行,往往都不能執行。
以下是將BCB包裝好,可以到其他電腦去執行的方法。

Project -> Options -> Linker-> Use dynamic RTL 打勾去掉
Project -> Options -> Packages -> Building with 打勾去掉

將上述兩個打勾去掉就可以囉。

HW1



這是我這幾天自己開始著手做的,不過遇到一點小問題還請大家幫忙解答一下。

------------------------------------------------------------------

OpenPictureDialog1->Execute();if(OpenPictureDialog1->Execute()){
Image1->AutoSize=true; Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}
-------------------以上是OpenFile的程式碼
-----------------------------


Filter Etidor的檔案類型設定為JPG、JPEG、BMP檔三種。


但打開BMP檔非常順利,如下: 這是開啟JPG檔後所出現的警示。 所以我現在只能打開BMP檔卻不能開啟JPG檔。有人可以幫忙解決嗎?




2009年10月6日 星期二

HW1

首先我做了海綿寶寶的圖像,
結果在執行時,才發現我的圖片有點小張,
不過好像可以接受,不至於看不清楚!
這項作業是在別人家完成的,因為我電腦還沒安裝BCB。
所以只能先到朋友家做。
因為上次上課的電腦,真的非常少台,有些又是沒主機,
所以只能看老師做過一遍,後來完成作業,
都是多虧了會的同學,我才能完成此項!
下面兩張圖就是我做的↓
這次的回家作業是把老師上課作的東西重新複習一次,
在快下課之前老師有說要做存檔的動作,老師要我們回去自己想怎麼做,
後來想一想其實跟讀檔差不多,只要改一些地方還有名稱就可以了。
不過一開始上這堂課 看到有要打程式就開始頭痛了。
可是後來發現 C++ Builder 似乎比我們一年級所上的c++還要簡單一點!
不過我還是覺得這門課,對我來說,還是有點頭痛.
為了複習,所以我又做了兩張

2009hw1




這是我在數位媒體的第一個作業。上圖中X.Y代表滑鼠在圖上的座標位址,R.G.B代表滑鼠目前所指到的顏色,而且點一下還會在Panel1上秀出顏色 !在課堂上寫這個程式時,我發現BCB真的挺方便的,許多物件都幫你寫好了(如Button,label,opendialog等等..)只要在物件上寫幾行程式就能用了,而且還有許多關鍵字也都幫你定義好了,像是Image1->Picture->.......,當然因為這是第一次學的關係,不少關鍵字用法還不大熟悉,剛開始還是免不了要東翻西查,因為工具實在很多。

HW1









這次程式非常有趣又很有新鮮感,沒想到以前用繪圖軟體的功能自己也能動手寫出來,這次也發現BCB的好處所在,BCB提供使用者非常多的物件,不用再花時間自己一個物件一個物件拼湊起來,但另一點則是上課的時候老師教得很快,其實我原本程式在上課已經打好八九成,ColorDialog還有Pen->Color那部分的程式只在上課聽但來不及打,回家後發現工具書也找不太到,後來是上網查才查到,希望可以的話能在Digital Media Class 寫更詳細的程式碼在BLOG,補充一點,我有看到 week 3 那篇文章,我有參考裡面的程式碼,但是不太詳細,這是我這次寫程式遭遇的困難。

97360596 資工二乙 黃俊傑

2009年10月5日 星期一

HW01

















1.首先先開啟BMP檔


















2.接著點選SET->COLOR選擇線條顏色

















3.選擇顏色
















4.成功在圖上畫下了許多線條




  這次是我第一次用c++ builder來讀取圖片甚至是要在圖片上作線條,還記得剛聽老師說要在上面作線條時我還蠻好奇的。一開始要放入一個OpenPictureDialog的物件,他是用來開起圖片檔案的物件 ,將他加入form裡頭後就可以開始用程式碼來達成開檔的目的,先加入
openPictureDialog1->Execute() //如果元件被執行,(execute執行之意)
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName)
//在Image1的picture裡面讀入一個剛剛開啟的圖片的檔名,這樣就能將圖片show在Image的picutre裡面了。
接著還要放入ColorDialog這個元件,我是把它放到MainMeun的第二的位置我將它命名為set,裡頭有個color,這個元件用來選擇顏色,第一個位置是放file,裡頭還有個我命名為open用來開啟圖片檔的。
接著我要在colorclick這個狀態下打入呼叫ColorDialog元件的程式碼
ColorDialog1 -> Execute(); //如果ColorDialog被執行
Image1 -> Canvas -> Pen -> Color = ColorDialog1 -> Color;
//Image1 的 Canvas(畫布) -> Pen(畫筆) -> Color(顏色) = 我 ColorDialog1元件裡頭選擇的顏色 。
這樣就完成開檔和選擇畫筆顏色的功能了。
接著是畫筆顏色出現的位置,
Image1MouseDown 這個是在Image稱為event的一個即時動作,當滑鼠點下時則發生事件,
在 Image1MouseDown 裡的程式碼如下:
Image1->Canvas->Pen->Color; //先取得顏色
if(Button==mbLeft) //如果點下左鍵
Image1->Canvas->MoveTo(X,Y); // 畫布上的座標就移到左鍵點的座標位置
if(Button==mbRight) //如果點下右鍵
Image1->Canvas->LineTo(X,Y); // 就從原本的座標開始做連線到右鍵點的座標
}
接下來就可以隨心所欲的畫囉!