我正在使用jQuery-cropbox在Web應用程序中裁剪圖像。裁剪圖像有時是錯誤的區域
大部分時間一切都平穩運行,但不時地,生成的圖像是錯誤的,就像裁剪應用了錯誤的座標一樣。
舉個例子,考慮這個image:
在裁剪框,我縮放和拖動,直到我得到這個:
但是當我點擊裁剪按鈕,它給了我這個:
這裏是裁剪代碼:
private Bitmap CropImage(Image img, Rectangle rect)
{
Bitmap newImg = new Bitmap(rect.Width, rect.Height);
Graphics g = Graphics.FromImage(newImg);
g.DrawImage(img, -rect.X, -rect.Y);
return newImg;
}
//...
// save image
var streamOut = new MemoryStream();
Bitmap newImg = CropImage(oldImg, rect);
newImg.Save(streamOut, ImageFormat.Png);
oldImg
是以前發佈的,rect
我用作物座標圖像。
我檢查了當然的座標,他們是正確的。
僅供參考,以獲得所提供的結果的座標是(那些可能不完全準確,我把他們從第二次測試,所以我肯定放在畫面略有不同):
x: 47
y: 94
w: 150
h: 150
什麼正在發生 ?
我的錢是DPI的問題。使用'DrawImage'的重載,它接受一個完整的'Rectangle',而不僅僅是位置。 – Rotem 2014-10-30 08:46:58
感謝您的建議,但它不起作用。結果是再次不同雖然(!) – 2014-10-30 08:56:58
專門嘗試這一個:http://msdn.microsoft.com/en-us/library/x2s2a44c(v=vs.110).aspx並傳入'GraphicsUnit.Pixel' 。 – Rotem 2014-10-30 09:09:44