我正在使用需要320 X 240張照片的網絡攝像頭。這種類型的照片給他們一個「風景」的外觀,我需要重新調整照片的大小,以169 x 225「肖像」的照片。它的徽章計劃。無論如何,當我重新調整照片的尺寸時,由於縱橫比的差異,它們會全部縮小。有沒有辦法在同一時間重新調整圖像大小和寬高比?這是否會被視爲裁剪或調整大小?我對從哪裏開始有點困惑。我主要使用VB,但如果某人在C#中有一個很好的例子,那麼請花時間來轉換它。謝謝在.net中調整圖像和縱橫比?
1
A
回答
2
你有兩個選擇。您可以裁剪,因爲最終尺寸與原始尺寸非常接近,或者可以剪裁和調整尺寸。如果你裁剪,然後調整大小,你需要裁剪180x240以達到適當的寬高比;當您將結果重新調整爲169x225時,不會有任何失真。
這裏有一個快速鏈接,我發現來形容VB.NET裁剪:http://www.nerdydork.com/crop-an-image-bitmap-in-c-or-vbnet.html
3
更改寬高比和裁剪是同樣的事情。 (基於標準的3×5照片尺寸比)
Double aspectRatio = 3.0/5.0
Int newHeight = actualHeight ' Use full height
Int newWidth = actualWidth * aspectRatio
,你想一箇中心作物,所以你必須計算出像這樣:你可以計算出新的畫像尺寸,像這樣
Int cropY = 0 ' Use full height
Int cropX = actualWidth/2.0 - newWidth/2.0
System.Drawing中的Bitmap對象具有Clone method,它接受裁剪矩形作爲參數。 Graphics對象有一個DrawImage method,您可以使用它來同時調整圖像大小和裁剪圖像。
0
http://www.switchonthecode.com/tutorials/csharp-tutorial-image-editing-rotate
private Bitmap rotateImage(Bitmap b, float angle)
{
//create a new empty bitmap to hold rotated image
Bitmap returnBitmap = new Bitmap(b.Width, b.Height);
//make a graphics object from the empty bitmap
Graphics g = Graphics.FromImage(returnBitmap);
//move rotation point to center of image
g.TranslateTransform((float)b.Width/2, (float)b.Height/2);
//rotate
g.RotateTransform(angle);
//move image back
g.TranslateTransform(-(float)b.Width/2,-(float)b.Height/2);
//draw passed in image onto graphics object
g.DrawImage(b, new Point(0, 0));
return returnBitmap;
}"
private static Image resizeImage(Image imgToResize, Size size)
{
int sourceWidth = imgToResize.Width;
int sourceHeight = imgToResize.Height;
float nPercent = 0;
float nPercentW = 0;
float nPercentH = 0;
nPercentW = ((float)size.Width/(float)sourceWidth);
nPercentH = ((float)size.Height/(float)sourceHeight);
if (nPercentH < nPercentW)
nPercent = nPercentH;
else
nPercent = nPercentW;
int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);
Bitmap b = new Bitmap(destWidth, destHeight);
Graphics g = Graphics.FromImage((Image)b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(imgToResize, 0, 0, destWidth, destHeight);
g.Dispose();
return (Image)b;
}
private static Image cropImage(Image img, Rectangle cropArea)
{
Bitmap bmpImage = new Bitmap(img);
Bitmap bmpCrop = bmpImage.Clone(cropArea,
bmpImage.PixelFormat);
return (Image)(bmpCrop);
}
相關問題
- 1. 調整無縱橫比的圖像
- 2. 調整縱橫比的圖像
- 3. 調整圖像保持縱橫比
- 4. 調整UIImage的縱橫比?
- 5. 調整繪圖的縱橫比R
- 6. 如何以橫向適應縱向圖像在縱橫比保持縱橫比
- 7. 如何調整在d3.js圖像時不保持縱橫比
- 8. 在保持縱橫比的同時調整圖像大小
- 9. 圖像縱橫比swift ios
- 10. imageview和圖像縱橫比的區別
- 11. 調整圖像的大小而不會損失縱橫比
- 12. 調整圖像大小(不是縱橫比)
- 13. 調整圖像大小並保持縱橫比
- 14. Java的圖像大小調整,保持縱橫比
- 15. 根據jquerymobile中的縱向和橫向調整圖像大小?
- 16. SVG高度未調整縱橫比
- 17. 保留圖像縱橫比在UICollectionViewCell
- 18. 繪圖縱橫比
- 19. 在iOS中將圖像從縱向調整爲橫向模式
- 20. 調整大小和裁剪圖像並保持縱橫比NodeJS&gm
- 21. 縱橫比自定義列表視圖中的縱橫比
- 22. 使用百分比值調整圖像大小,同時更改縱橫比
- 23. CSS - 保持圖像縱橫比flexbox
- 24. 更改流體圖像縱橫比css
- 25. writeablebitmap縱橫比保存圖像
- 26. 獲得縱橫比FO圖像
- 27. 控制按鈕圖像縱橫比xml
- 28. html2canvas圖像縱橫比不正確
- 29. 將PictureBox中的圖像調整到儘可能大,同時保持縱橫比?
- 30. 完整視圖:繪圖框架尺寸和縱橫比
這就是我最終使用的。謝謝! – broke 2010-07-07 21:07:58