0
我已經實現了一個函數來在c#(縮放)中垂直調整圖像大小。它需要兩個參數:要調整大小的圖像和圖像的新高度。這裏是我的代碼:在c中實現調整圖像大小#
public static Bitmap ScaleUpDown(Bitmap b, int height)
{
Bitmap scaledImage = new Bitmap(b.Width, height);
int scaleRatio = height/b.Height;
if (scaleRatio >= 1)
{
for (int i = 0; i < b.Width; i++)
{
for (int j = 0; j < b.Height; j++)
{
Color pixel = b.GetPixel(i, j);
int fill = 0;
while (fill < scaleRatio)
{
scaledImage.SetPixel(i, scaleRatio * j + fill, pixel);
fill++;
}
}
}
}
return scaledImage;
}
這裏是我做的:我訪問的每一個像素,將其複製並粘貼到基於調整的比例在同一列中的下一行。我的問題是,只有當新高度是舊高度的倍數時,這些代碼才能正常工作,例如2 * oldHeight,3 * oldHeight等。如果新高度應該是舊高度的1.5倍或1.3倍,那該怎麼辦?我能做些什麼?
感謝
不清楚你在問什麼。 'BroTip:'使用'Viewbox'。不要浪費你的時間試圖重新發明輪子。 –
我認爲這是一個excersize?你知道.Net提供了開箱即用的調整大小/縮放比例(並且如果你需要的不僅僅是基本的大小調整/縮放比例,還有大量的圖書館正在爲你繁重的工作)? – RobIII
@RobIII是的,我知道.Net提供它,但我試圖實現它。這是一件太難的事情嗎?我是圖像處理新手,試圖理解它是如何工作的,所以我想自己實現它 – yrazlik