我有一個Bitmap
對象,我需要有時會水平翻轉,有時會垂直翻轉,有時兩者都翻轉。完整的框架有Image.RotateFlip()
方法,這正是我所需要的。不幸的是,像完整框架上的大多數有用功能一樣,這種方法在緊湊框架中不存在。有沒有簡單的方法來做到這一點?我能找到的最好的是this,但它使用不安全的代碼,我想避免它,它只能做旋轉而不是翻轉。.NET Compact Framework中的翻轉位圖
編輯:好吧,我找到了一種方法來做一些優化,我只需要做垂直翻轉。
我有一個Bitmap
對象,我需要有時會水平翻轉,有時會垂直翻轉,有時兩者都翻轉。完整的框架有Image.RotateFlip()
方法,這正是我所需要的。不幸的是,像完整框架上的大多數有用功能一樣,這種方法在緊湊框架中不存在。有沒有簡單的方法來做到這一點?我能找到的最好的是this,但它使用不安全的代碼,我想避免它,它只能做旋轉而不是翻轉。.NET Compact Framework中的翻轉位圖
編輯:好吧,我找到了一種方法來做一些優化,我只需要做垂直翻轉。
CF不支持它,但是如果您的設備支持成像庫,那麼您可以P/Invoke下降到IBasicBitmapOps::Flip。 SDF已經包含在OpenNETCF.Drawing.Imaging.ImageUtils類中。
這就是我一直在尋找的。我已經使用不安全的指針操作自己實現了它,但這可能是更安全的方法。 – Jason 2009-08-13 17:13:51
我最近讀了一篇關於這方面的文章。我還沒有嘗試過,因爲我需要90/180/270以外的其他旋轉,但它聲稱是一種快速旋轉的方式。
http://www.codeproject.com/KB/graphics/ImageRotationForCF.aspx
[編輯] 該死的,我沒有正確讀取,你已經發現這個..對不起。
賈森,相同的鏈接使用「安全」的方法來旋轉。它說,花了將近3分鐘才能在800x600像素的圖像上完成90度旋轉,這對我來說似乎太長了。我會試着在你的設備上看看它是如何執行的,也許會尋找一個瓶頸。根據我的經驗,get和set像素方法非常快。而且,從旋轉到翻轉的邏輯只是一小步... – 2009-08-13 14:27:34
爲什麼要避免不安全的代碼?它速度快,效果好,而且在語言上完全合法。 – ctacke 2009-08-13 14:46:10