我想知道是否有任何好的教程或關於加載,創建和編輯C++位圖的書。我需要逐個像素地編輯位圖,但沒有一個教程沒有顯示如何。我想了解位圖「工作」和維基百科有何幫助。在C++中編輯位圖
回答
如果你想操縱像素級別的位圖,那麼你應該開始學習圖像處理,然後閱讀一些關於位圖文件格式的內容。這不是一個C++問題。 C++在這樣的任務中只是錦上添花。
在這裏,你可以找到關於圖像處理的一些講座: http://www.archive.org/details/Lectures_on_Image_Processing
這裏是BMP格式的文件的描述: http://www.fileformat.info/format/bmp/spec/e27073c25463436f8a64fa789c886d9c/view.htm
你可以很容易找到很多來源爲其他格式,以及。祝你好運,我在大學三年來一直在研究這個話題......我認爲你應該像David Grayson所建議的那樣,使用一些開源庫。
我一直在研究BMP的過去2天,但我真正需要做的是從每個像素讀取R,G和B顏色值,以便稍後使用它們。我需要使矩陣是m * n,其中m是圖像的寬度和n高度,並在每個元素中存儲顏色值..我無法弄清楚如何去做 – Transcendental 2012-02-05 15:03:24
在哪個平臺上? – vitakot 2012-02-05 16:01:46
在Windows 7 ... – Transcendental 2012-02-05 17:31:21
我假設你已經搜索了Google,並沒有發現任何好的東西。
如果我是你,我會首先了解位圖的二進制格式。您可以通過閱讀規範和/或使用十六進制編輯器(如WinHex或ghex2)查看位圖文件來了解它。
然後我會學習如何讀取文件並使用C++中的二進制數據。
不過說真的,你或許可以節省大量的努力,如果你只是使用Magick ++庫:
如果要編輯位圖,你只需要瞭解你要編輯的格式。每個組件有多少位,每個像素有多少個組件,定義的寬度和高度在哪裏,以及這些格式文件的標準是什麼。如果你想使用流行的BMP,你可以在Wikipedia找到所有這一切。
如果這一切對你沒什麼意義,那麼你應該首先嚐試數字圖像處理教程。
圖像只是一個結構(像素)的數組,每個都有一定數量的組件,您只需讀寫所述數組即可完成您想要的任何版本。但要注意的是,雖然常見的作物和像素替換幾乎是微不足道的,但高級版本和改變不是。
- 1. 在Android 2.3中編輯位圖
- 2. 在Android中動態位圖編輯
- 3. 在C#中裁剪和編輯圖像
- 4. 編輯8bpp索引位圖
- 5. 圖標編輯器位置
- 6. WPF位圖編輯器
- 7. C++讀取和編輯位圖圖像的像素
- 8. 在C中編輯GIF#
- 9. C#編輯樹型視圖
- 10. 編輯圖像源C#
- 11. 用C編輯圖像#
- 12. 試圖在qt中製作一個位圖編輯器
- 13. 編輯到位
- 14. 編輯XSL:PARAM在C#
- 15. 在java中編輯圖像
- 16. 在Photoshop中編輯圖像
- 17. 在php中編輯圖像
- 18. 定義中的DevExpress PropertyGrid.SelectedObject的級編輯型(在位編輯器)
- 19. 如何在圖表編輯器中編輯後獲取圖表?
- 20. 在Outlook編輯器中設置光標位置的c#代碼
- 21. PHP刪除圖像編輯位置
- 22. 將編輯文本保存爲位圖
- 23. 如何創建和編輯位圖
- 24. 編輯視頻以嵌入位圖
- 25. 編輯在圖表
- 26. C中的按位邏輯
- 27. 如何在Windows 7中使用C#編輯位於C:\ program files中的文件?
- 28. Django。在視圖中編輯表單字段佔位符
- 29. 如何在Android的編輯框中顯示位圖
- 30. 如何在C#中編輯類似編輯的字符串?
太寬泛的一個問題 – BitBank 2012-02-04 20:28:32
你看過[「使用C++讀取和寫入BMP文件的最簡單方法」] [1]嗎? [1]:http://stackoverflow.com/q/199403/6294 – Maggie 2012-02-04 20:31:29
@ user1183602: 「位圖」 可以是模糊的術語。你在談論以「.bmp」結尾的文件嗎?或只是在內存中的圖像?或者是其他東西? – 2012-02-04 20:35:44