2011-06-16 77 views
0

,所以我已經看過這樣一對夫婦的其他問題,並從圖像的寬度和高度我所看到的一切答案似乎回答我的問題。我創建了一個創建ASCII藝術的程序,它基本上是一個文本圖片而不是顏色。我必須手動設置像素的寬度和高度時設置程序的方式。如果像素的寬度和高度太大,它就不會工作。所以基本上我想要做的是有一個功能,自動設置的寬度和高度的圖片的大小。 http://www.mediafire.com/?3nb8jfb8bhj8d是現在程序的鏈接。我看着像素採集卡,但構造函數方法都需要一個像素範圍。我也有一個班的另一個文件夾,http://www.mediafire.com/?2u7qt21xhbwtp獲取像素


另一個注意,這項計劃是非常低效的,我知道,這是低效的grayscaleValue()方法,但我不知道如果有什麼更好的辦法做這個。這個計劃的任何建議也會很棒。提前致謝! (這個程序全部是在eclipse上完成的)

回答

0

將圖像讀入BufferedImage之後,可以調用getWidth()和getHeight()來動態獲取這些信息。請參閱JavaDocs。另外,使用GetPixelColor的構造函數來一勞永逸地創建BufferedImage。這將避免從磁盤讀取每個像素的每個通道的整個文件。

爲了進一步代碼清理,更改系列的if語句到開關構建體,或索引到一個數組,取其更自然。有關開關結構的說明,請參見this。最後

一種意見:邏輯上表示對象的狀態應該聲明非靜態類內部的任何物件。比方說,如果你想並排渲染兩個圖像,你需要創建實例,如果GetPixelColor,並且每個應該有它自己的高度和寬度屬性。由於它們當前聲明爲靜態,所以每個實例將共享相同的數據,這顯然不是令人期望的行爲。

+0

你知道我真的應該去那裏看看......非常感謝!關於如何使程序更有效的任何建議? – Evan 2011-06-16 03:44:07

+0

是的,這是..這是我第一次使用圖像的程序,所以我新BufferedImage類你會介意發佈一些適合我的代碼? – Evan 2011-06-16 03:54:09

+0

是的,如果你不介意 – Evan 2011-06-16 04:09:49