image的textout 字體寬高問題 |
答題得分者是:dllee
|
pireer
初階會員 ![]() ![]() 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
我測試ㄧ個字串...假設輸入.台灣兩字會依照下列程式碼去得到其中一個字的寬高.
但用Edit1->Text.SubString(2,1);去擷取一個字之後寬度都會變的蠻小的..
如果是直接在 Edit4->Text = IntToStr(Image1->Canvas->TextWidth("台")); 就會顯示正常寬度.. 請問如果要如何克服這問題?
如果輸入的是非ansi的字串..該如何正確讓他能畫出來? 我看HELP上的用textout是支援widestring.但還是畫不出來. 請前輩們指點.. <textarea rows="15" cols="80">Image1->Canvas->Font->Name = "MS Sans Serif";
Image1->Canvas->Font->Size = 10 Image1->Canvas->TextOutA(0,0,Edit1->Text);
Astr = Edit1->Text.SubString(2,1);
Edit2->Text = IntToStr(pSize.cx);
Edit3->Text = IntToStr(pSize.cy);
Edit4->Text = IntToStr(Image1->Canvas->TextWidth(Astr.c_str()));
Edit5->Text = IntToStr(Image1->Canvas->TextHeight(Astr.c_str()));</textarea>
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
pireer
初階會員 ![]() ![]() 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
pireer
初階會員 ![]() ![]() 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
pireer
初階會員 ![]() ![]() 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
|
pireer
初階會員 ![]() ![]() 發表:73 回覆:80 積分:30 註冊:2004-12-14 發送簡訊給我 |
假設一個字串為 "中文ABC123測試"...
要將每一個字假設16*16 儲存到WORD [1024][16] 陣列中(設最大儲存字數為1024..) 因為要將隨意輸入的字串儲存文字. 所以用IMAGE的TEXTOUT將字畫出來再用下面方法轉成WORD資料. 我目前想到的辦法是用掃描Pixels..如下 Canvas->Pixels[x][y] == clBlack 這樣才能轉成WORD資料.. ㄧ次一個字還是一次可以掃整個字串?? 中英文數字同字型同大小但寬度不同.那該如何判斷? 請前輩指點.
編輯記錄
pireer 重新編輯於 2007-07-04 08:22:56, 註解 無‧
|
dllee
站務副站長 ![]() ![]() ![]() ![]() ![]() ![]() 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |