位插值C#
回答
我想你要做到以下幾點:以一個16×16像素的圖像,並將其插值到160×160像素的圖像。這裏有三個樣本輸出(你只說要使用樣條插補,但沒有哪一個):
- 近鄰
- 雙線性(應用在X和Y兩個方向linear spline interpolation)
- 兩次立方(應用cubic spline interpolation在x和y方向)
original img http://img695.imageshack.us/img695/8200/nearest.png linear interpolation img http://img707.imageshack.us/img707/3815/linear.png cubic interpolation img http://img709.imageshack.us/img709/1985/cubic.png
.NET Framework提供的,還有一些人的方法(見MSDN, InterpolationMode Enumeration)。
該代碼將執行圖像縮放。 (我寫了一個擴展方法,但你可以放棄使用this
關鍵字,並使用它作爲一個正常的功能):
public static Image EnlargeImage(this Image original, int scale)
{
Bitmap newimg = new Bitmap(original.Width * scale, original.Height * scale);
using(Graphics g = Graphics.FromImage(newimg))
{
// Here you set your interpolation mode
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bicubic;
// Scale the image, by drawing it on the larger bitmap
g.DrawImage(original, new Rectangle(Point.Empty, newimg.Size));
}
return newimg;
}
你會使用這樣的:
Bitmap my16x16img = new Bitmap(16, 16);
Bitmap the160x160img = (Bitmap)my16x16img.EnlargeImage(10);
位圖寬度爲160 * 160 * 4和每一個像素的寬度和高度爲16×16和4是像素格式ARGB,Initally的每個像素設置爲黑色具有α爲零。填充一些不同顏色的單元格。現在我想執行插值,以便使用三次樣條插值可以獲得平滑的圖像。請讓我知道如何做到這一點。 – Raghav 2010-04-20 06:06:43
你的意思是你有16 * 16像素的正方形嗎?一個像素可能顯然不是16x16 ***大的東西。另一件事是不是我在我的回答中描述的? – 2010-04-20 10:19:27
對不起,像素的大小是10 * 10。位圖大小不應該減小。請檢查這個鏈接http://www.codeproject.com/KB/cs/ColorShading.aspx,這是什麼要求使用三次樣條插值 – Raghav 2010-04-20 11:08:02
- 1. 雙C插值C
- 2. C#樣條插值插值點
- 3. 插入位置C#webform
- 4. 使用位圖類的位圖插值
- 5. 位置插值不正常
- 6. C#線性插值
- 7. C#DataGridView位值(WinForms)
- 8. C++ ADO.NET無法插入NULL值插入
- 9. c# - 字符串插值
- 10. 值插入陣列用C
- 11. 圖像插值C#2010
- 12. 地理座標插值C++
- 13. C#SqlCommand插入空值
- 14. C#插入值到DataGridView的
- 15. n維插值C++算法
- 16. 在C++中插值矩陣
- 17. gameloop和插值的DeltaTime C++
- 18. MathHelper.Lerp C#(線性插值)
- 19. C字符串插值
- 20. Objective-C的2D插值
- 21. 輸入128位值C++ boost
- 22. JSON子水位值c#
- 23. C/C++ - 瞭解音頻插值代碼
- 24. RichTextBox C#設置插入位置winforms
- 25. 在位置X處插入值
- 26. 線性插值 - 音頻移位
- 27. JPA Postgres插入位(4),默認值爲
- 28. 基於位置插入值到arraylist hashmap
- 29. Android位圖線性插值混合
- 30. C/C++ - 將32位浮點值轉換爲24位標準化的定點值?
*「我需要執行顏色插值「。* - 那很好......那麼你的問題是什麼? :) – gehho 2010-04-19 09:17:52
@ghetto:必須有在某處有一個很好的問題,2個upvotes來證明這一點。 – 2010-04-19 10:15:39
如何執行此使用樣條插值 – Raghav 2010-04-19 10:17:44