WPF中BitmapImage对象切割 10
我想要像GDI+中那样,把wpf中的BitmapImage取指定部分。换句话说,就是把一个bitmapimage对象,切割成几份?如果能告知把BitmapImage对象转...
我想要像GDI+中那样,把wpf中的BitmapImage取指定部分。换句话说,就是把一个bitmapimage对象,切割成几份?
如果能告知把BitmapImage对象转换成Bitmap也行,我先用GDI+切,然后转回去吧。 展开
如果能告知把BitmapImage对象转换成Bitmap也行,我先用GDI+切,然后转回去吧。 展开
1个回答
展开全部
回答过一次转换了,这里就贴一个以前写的切割示例吧,根据给定的行、列数和切割后的大小将图像进行切割后放入一个集合当中,界面上进行绑定:
List<BitmapSource> Cut(BitmapSource image, int row, int column,double width,double height)
{
List<BitmapSource> results = new List<BitmapSource>();
for(int i=0;i<row;i++)
for(int j=0;j<column;j++)
{
var rectangle = new Int32Rect(j * Convert.ToInt32(width), i * Convert.ToInt32(height), Convert.ToInt32(width), Convert.ToInt32(height));
var stride = image.Format.BitsPerPixel * rectangle.Width / 8;
byte[] data = new byte[rectangle.Height * stride];
image.CopyPixels(rectangle, data, stride, 0);
BitmapSource result = BitmapSource.Create(Convert.ToInt32(width), Convert.ToInt32(height),0, 0, PixelFormats.Bgra32, null, data, stride);
results.Add(result);
}
return results;
}
不知道和你找到的切割方式是否一样,希望对你有帮助,有疑问请追问或是Hi
List<BitmapSource> Cut(BitmapSource image, int row, int column,double width,double height)
{
List<BitmapSource> results = new List<BitmapSource>();
for(int i=0;i<row;i++)
for(int j=0;j<column;j++)
{
var rectangle = new Int32Rect(j * Convert.ToInt32(width), i * Convert.ToInt32(height), Convert.ToInt32(width), Convert.ToInt32(height));
var stride = image.Format.BitsPerPixel * rectangle.Width / 8;
byte[] data = new byte[rectangle.Height * stride];
image.CopyPixels(rectangle, data, stride, 0);
BitmapSource result = BitmapSource.Create(Convert.ToInt32(width), Convert.ToInt32(height),0, 0, PixelFormats.Bgra32, null, data, stride);
results.Add(result);
}
return results;
}
不知道和你找到的切割方式是否一样,希望对你有帮助,有疑问请追问或是Hi
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询