回答
這是轉換的一種方式,所以讓我們從這裏開始,看看是否有人能夠頂到這個駭人聽聞的裝置。它們很好地映射到彼此,所以編寫開關盒應該相當容易。
private static System.Windows.Media.PixelFormat ConvertPixelFormat(System.Drawing.Imaging.PixelFormat sourceFormat)
{
switch (sourceFormat)
{
case System.Drawing.Imaging.PixelFormat.Format24bppRgb:
return PixelFormats.Bgr24;
case System.Drawing.Imaging.PixelFormat.Format32bppArgb:
return PixelFormats.Bgra32;
case System.Drawing.Imaging.PixelFormat.Format32bppRgb:
return PixelFormats.Bgr32;
// .. as many as you need...
}
return new System.Windows.Media.PixelFormat();
}
的話題很老,但我這是怎麼工作圍繞這一問題,這兩個枚舉都相同的字符串值的假設下工作。
private static System.Windows.Media.PixelFormat ConvertPixelFormat (System.Drawing.Imaging.PixelFormat sourceFormat) { System.Windows.Media.PixelFormat pixelFormat = (System.Windows.Media.PixelFormat) Enum.Parse(typeof(System.Windows.Media.PixelFormat), sourceFormat.ToString());
return pixelFormat; }
我不相信這是真的,因爲System.Windows.Media.PixelFormat是一個結構,而不是一個枚舉。 – Veggie 2015-10-29 19:20:11
這是絕對錯誤的。這段代碼所做的唯一事情就是獲取Imaging-PixelFormat枚舉對象的**名稱**,並嘗試直接將Enum-解析爲Media-PixelFormat類型,這是不可能的:Enum-Parse將不起作用,因爲在第一個參數中傳入的類型不是枚舉類型。如果這可以以任何方式工作,它可能只有其他方式,從媒體(結構)到Imaginig(枚舉)。但即使如此,Imaging-PixelFormat名稱就像''Format32bppArbg''',而Media-PixelFormat名稱就像''Bgra32''所以**所提供的轉換絕不可能**。 – quetzalcoatl 2016-08-10 12:23:13
- 1. 如何轉換PIxelFormat?
- 2. 轉換爲索引位圖PixelFormat在C#
- 3. 混淆PixelFormat
- 4. PixelFormat棄用1.6?
- 5. 的PixelFormat convertation麻煩
- 6. 用pixelformat導出圖像16bpp4444
- 7. 每個設備的Android PixelFormat
- 8. 如何修復UnsupportedImageFormatException PixelFormat Format32bppArgb?
- 9. .Net PixelFormat有Java相當於?
- 10. 無法在cocos2d中設置的PixelFormat爲Android
- 11. C#爲什麼Bitmap.Save忽略位圖的PixelFormat?
- 12. 轉換GDI爲XPS
- 13. WPF/WinForms/GDI互操作:將WriteableBitmap轉換爲System.Drawing.Image?
- 14. 如何將WicImagingBitmap轉換爲Gdi +位圖或流?
- 15. 使用gdi +(C#)將png轉換爲gif
- 16. GDI System.Drawing.Printing將白色轉換爲黑色
- 17. 如何使用libav中的PixelFormat獲取像素位數
- 18. 使用VB.NET中的GDI +將24BPP轉換爲4BPP
- 19. 將System.Drawing.Font.Size轉換爲WPF FontSize
- 20. WPF:將ImageSource轉換爲Stream
- 21. 將EMF文件轉換爲GDI命令的最佳軟件?
- 22. 如何將形狀從Directx轉換爲gdi +使用c#
- 23. 如何將C++ GDI代碼轉換爲C#項目
- 24. 如何將GDI +的圖像*轉換爲位圖*
- 25. 如何將gdi +類似於位圖的結構轉換爲HDC?
- 26. wpf將一些XAML轉換爲C#
- 27. 將ARGB轉換爲WPF中的RGB
- 28. WPF或C#將Html轉換爲Doc
- 29. 將WPF應用程序轉換爲Silverlight
- 30. 將WinInfo的BeginInvoke代碼轉換爲Wpf
謝謝。我最終做了這樣的事情。確保所有類似命名的格式實際上完全等價是很棘手的。 – Jem 2013-01-10 10:32:08
'System.Drawing.Imaging.PixelFormat.Format16bppArgb1555'似乎沒有相同的東西,如果我沒有遺漏什麼。但無論如何,這種格式似乎相當模糊(每個5位RGB + 1位阿爾法)。 – 2018-01-24 09:07:37
如果有些不支持,也許返回值應該是一個可選/可空。如果沒有找到相應的格式,調用者將不得不決定是否拋出或做其他事情。 – 2018-01-25 11:48:13