關於存圖檔的問題 |
尚未結案
|
tbscsh
一般會員 發表:7 回覆:1 積分:1 註冊:2004-03-10 發送簡訊給我 |
大家好,小弟有個問題想要請要一下:
為了可以在Panel上進行OpenGL繪圖(不想直接畫在Form上),
並且需要有Canvas屬性(想要能夠存成圖檔),
我依照"BC++ Builder程式設計",山風工作室著,
第一章的範例,寫了一個元件Tpanel1,繼承Tpanel,
多了一property Canvas,於是就可以繪圖並且存圖檔.
目前存圖檔的做法是以Canvas的CopyRect方法作:
Graphics::TBitmap* bitmap = new Graphics::TBitmap(); bitmap->PixelFormat = pf24bit; bitmap->Height = Panel11->Height; bitmap->Width = Panel11->Width; bitmap->Canvas->CopyRect(Panel11->Canvas->ClipRect,Panel11->Canvas,Panel11->Canvas->ClipRect); bitmap->SaveToFile(filename);程式是Render出一連串的影像(依照時間順序讀入相對應的資料檔,並繪出其圖形), 所以提供了save images when play的功能,讓我們可以在play的時候順便存圖檔. 現在問題來了,用此方法當play時,若我們將視窗縮小,則會發生抓不到圖檔的問題, 於是就想到直接複製Canvas裡面的Pixels: for(int i = 0 ; iWidth ; i) { for(int j=0 ; jHeight ; j) { bitmap->Canvas->Pixels[i][j] = Panel11->Canvas->Pixels[i][j]; } }但是用此方法很慢,連單存一張圖都要很久,:( 不知道您有什麼看法,還請您幫忙,謝謝:) |
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |