C中的圖像處理#
回答
總有辦法,但無論他們是更好的... ...一個JPG是一種壓縮的圖像格式,這意味着做任何圖像處理上它,你需要的東西來解釋這些數據。 bimap對象會爲你做這件事,但如果你想要走另一條路線,你需要研究理解jpeg規範,創建某種解析器等等。可能有快捷方式可以不需要做原始jpg的完整解釋,但我認爲這將是一個壞主意。
哦,不要忘記有不同的文件格式爲JPG明顯(JFIF和EXIF),你將ened瞭解...
我會覺得很難避免專門爲設計對象之前你正在嘗試做的事情。
EXIF不是jpeg格式。 EXIF是添加到任何圖像格式的元數據。見http://en.wikipedia.org/wiki/Exchangeable_image_file_format – 2010-07-26 11:55:20
@Philip Smith:從來沒有說過它是一種jpeg格式,只是它是一種文件格式。如果你從磁盤加載jpg,你仍然需要知道文件是如何構建的,這樣你就可以獲得圖像數據和元數據等等。 – Chris 2010-07-26 12:55:40
.jpeg文件只是一個沒有JPEG解碼器的字節。在Bitmap類中內置了一個,它可以很好地解碼.jpeg文件。結果是一個Bitmap對象,你無法解決這個問題。
它支持通過Graphics類以及Bitmap(圖像,大小)構造函數調整大小。但是,是的,製作較小的.jpeg圖像通常會生成較大的文件。這是Graphics.Interpolation模式不可避免的副作用。它試圖通過過濾器運行像素來改善縮小圖像的外觀。雙立方過濾器做得非常好。
對人眼來說看起來不錯,對JPEG編碼器看起來不怎麼樣。濾鏡會生成插值像素顏色,旨在避免在尺寸縮小時使圖像細節完全消失。然而,這些混合像素值使編碼器上的更難以壓縮圖像,從而產生更大的文件。
你可以用Graphics.InterpolationMode修改並選擇一個質量較低的過濾器。產生較差的圖像,但更容易壓縮。我懷疑你會欣賞結果。
這是我正在做的。
不,我不認爲你可以調整圖像的大小,而不先處理它在內存中(即在某種類型的位圖中)。
體面的質量調整大小涉及使用插值/外插算法;它不能只是「挑出每n個像素」,除非你可以與最近的鄰居解決。
這裏有一些解釋:http://www.cambridgeincolour.com/tutorials/image-interpolation.htm
protected virtual byte[] Resize(byte[] data, int width, int height) {
var inStream = new MemoryStream(data);
var outStream = new MemoryStream();
var bmp = System.Drawing.Bitmap.FromStream(inStream);
var th = bmp.GetThumbnailImage(width, height, null, IntPtr.Zero);
th.Save(outStream, System.Drawing.Imaging.ImageFormat.Jpeg);
return outStream.ToArray(); }
- 1. C++中的圖像處理
- 2. C++中的圖像處理
- 3. c中的圖像處理#
- 4. C++圖像處理
- 5. C++中的位圖圖像處理
- 6. C++的圖像處理庫
- 7. c#中的圖像處理庫
- 8. Obj-C中的圖像處理
- 9. C#圖像處理:圖像相似性
- 10. C#AForge.Net圖像處理圖像
- 11. c#圖像座標處理
- 12. 用C處理圖像#
- 13. 用C++處理DICOM圖像
- 14. 圖像處理在c#,.淨
- 15. Objective C圖像處理
- 16. C++圖像處理循環
- 17. C#3D圖像處理
- 18. iPhone Objective-C圖像處理
- 19. ASP.NET C#處理圖像
- 20. 促進C/C++處理的Android圖像處理庫
- 21. Java中的圖像處理,如MATLAB圖像處理工具箱
- 22. C++/Java/C#圖像處理庫
- 23. OpenCV:圖像處理,目標C/C++
- 24. ImageView中的圖像處理
- 25. matlab中的圖像處理
- 26. Rails中的圖像處理
- 27. ruby中的圖像處理
- 28. PHP中的圖像處理
- 29. onPreviewFrame中的圖像處理
- 30. R中的圖像處理
爲什麼會使用'Bitmap'不適合? – 2010-07-26 11:15:39
說明:是否認爲'Bitmap'會比JPEG圖像使用更多的內存?您應該考慮只有在將整個圖像解壓縮爲位圖格式時才能調整大小。 – 2010-07-26 11:26:13
我寧願避免位圖,因爲一旦你轉換爲位圖文件大小將大大增加。如果壓縮回JPG格式,則會從圖像中丟失一些信息。 – mouthpiec 2010-07-26 13:12:14