c# - Dynamically crop a BitmapImage object -
i have bitmapimage object contains image of 600 x 400 dimensions. c# code behind, need create 2 new bitmapimage objects, obja , objb of dimensions 600 x 200 each such obja contains upper half cropped image , objb contains lower half cropped image of original image.
bitmapsource tophalf = new croppedbitmap(sourcebitmap, toprect); bitmapsource bottomhalf = new croppedbitmap(sourcebitmap, bottomrect);
the result not bitmapimage
, it's still valid imagesource
, should ok if want display it.
edit: there way it, it's pretty ugly... need create image
control original image, , use writeablebitmap.render
method render it.
image imagecontrol = new image(); imagecontrol.source = originalimage; // required because image control not part of visual tree (see doc) size size = new size(originalimage.pixelwidth, originalimage.pixelheight); imagecontrol.measure(size); rect rect = new rect(new point(0, 0), size); imagecontrol.arrange(ref rect); writeablebitmap tophalf = new writeablebitmap(originalimage.pixelwidth, originalimage.pixelheight / 2); writeablebitmap bottomhalf = new writeablebitmap(originalimage.pixelwidth, originalimage.pixelheight / 2); transform transform = new translatetransform(); tophalf.render(originalimage, transform); transform.y = originalimage.pixelheight / 2; bottomhalf.render(originalimage, transform);
disclaimer: code untested ;)
Comments
Post a Comment