我在WPF中使用CroppedBitmap
方法裁剪图像。必需的输入参数是int32Rect。但是,我的图像高度和宽度值是双(像素)。因此,如果不截断Double to Int,我想使用double值(像素)裁剪图像
由于截断,会导致图像质量下降,裁剪图像边框上出现轻微的空白区域
这可能吗?
这是我的代码。
public static BitmapSource SaveSelectedRegion(BitmapSource source, Shape rubberBand)
{
try
{
int rubberX = Convert.ToInt32(rubberBand.Margin.Left);
int rubberY = Convert.ToInt32(rubberBand.Margin.Top);
int rubberW = Convert.ToInt32(rubberBand.Width);
int rubberH = Convert.ToInt32(rubberBand.Height);
// it seems cropped bitmap only support int parameters.
CroppedBitmap crop = new CroppedBitmap(source
, new Int32Rect(rubberX, rubberY, rubberW, rubberH));
var res= crop as BitmapSource;
return res;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
我也已经看过这篇文章了。 wpf CroppedBitmap crop image as pixel values in double这对我不起作用。