Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLluis Sanchez <lluis@xamarin.com>2013-11-29 14:32:52 +0400
committerLluis Sanchez <lluis@xamarin.com>2013-11-29 14:32:52 +0400
commit812692fb3e20d8655febd9d329f25205689bb262 (patch)
treed29d6a739e6c2bc6d3fb10bb7a39c9fc37abb2ee /Xwt.WPF
parent5b1f32a80ec4d8e98d26441d29ee1def2494d34b (diff)
[WPF] Bitmap support fixes
Properly implemented image cropping. Implement GetScaleFactor.
Diffstat (limited to 'Xwt.WPF')
-rw-r--r--Xwt.WPF/Xwt.WPFBackend/ContextBackendHandler.cs5
-rw-r--r--Xwt.WPF/Xwt.WPFBackend/ImageHandler.cs19
2 files changed, 8 insertions, 16 deletions
diff --git a/Xwt.WPF/Xwt.WPFBackend/ContextBackendHandler.cs b/Xwt.WPF/Xwt.WPFBackend/ContextBackendHandler.cs
index f6e8d705..cfbaa1da 100644
--- a/Xwt.WPF/Xwt.WPFBackend/ContextBackendHandler.cs
+++ b/Xwt.WPF/Xwt.WPFBackend/ContextBackendHandler.cs
@@ -46,6 +46,11 @@ namespace Xwt.WPFBackend
public class WpfContextBackendHandler
: ContextBackendHandler
{
+ public override double GetScaleFactor (object backend)
+ {
+ var c = (DrawingContext)backend;
+ return c.ScaleFactor;
+ }
public override void Save (object backend)
{
var c = (DrawingContext) backend;
diff --git a/Xwt.WPF/Xwt.WPFBackend/ImageHandler.cs b/Xwt.WPF/Xwt.WPFBackend/ImageHandler.cs
index 6d672c93..d53af270 100644
--- a/Xwt.WPF/Xwt.WPFBackend/ImageHandler.cs
+++ b/Xwt.WPF/Xwt.WPFBackend/ImageHandler.cs
@@ -254,22 +254,9 @@ namespace Xwt.WPFBackend
public override object CropBitmap(object handle, int srcX, int srcY, int w, int h)
{
- var oldImg = (SWMI.BitmapSource)DataConverter.AsImageSource (handle);
-
- double width = WidthToDPI (oldImg, w);
- double height = HeightToDPI (oldImg, h);
-
- SWM.DrawingVisual visual = new SWM.DrawingVisual ();
- using (SWM.DrawingContext ctx = visual.RenderOpen ())
- {
- //Not sure whether this actually works, untested
- ctx.DrawImage(oldImg, new System.Windows.Rect (-srcX, -srcY, srcX+width, srcY+height));
- }
-
- SWMI.RenderTargetBitmap bmp = new SWMI.RenderTargetBitmap ((int)width, (int)height, oldImg.DpiX, oldImg.DpiY, PixelFormats.Pbgra32);
- bmp.Render (visual);
-
- return bmp;
+ var oldImg = (SWMI.BitmapSource)DataConverter.AsImageSource (handle);
+ var bmp = new CroppedBitmap (oldImg, new Int32Rect (srcX, srcY, w, h));
+ return new WpfImage (bmp);
}
public override void CopyBitmapArea (object srcHandle, int srcX, int srcY, int width, int height, object destHandle, int destX, int destY)