簡體   English   中英

SkiaSharp從ImageView加載圖像

[英]SkiaSharp load imge from ImageView

我試圖將位圖從ImageView加載到SKCanvasView。 問題在於此圖像已設置了CenterCrop,並且已加載到畫布的圖像太大。 如何使其在ImageView中看起來完全像?

代碼示例:

_skBitmap = ((BitmapDrawable)_frontView.ImageView.Drawable).Bitmap.ToSKBitmap();

並繪制:

private void _canvas_PaintSurface(object sender, SKPaintSurfaceEventArgs e)
    {
        var canvas = e.Surface.Canvas;

        var scale = Resources.DisplayMetrics.Density;

        canvas.Scale(scale);

        if (_skBitmap != null)
        {
            canvas.DrawBitmap(_skBitmap, e.Info.Rect);
        }
    }

如果有人感興趣(就我而言,圖像總是比屏幕寬):

private void _canvas_PaintSurface(object sender, SKPaintSurfaceEventArgs e)
{
    var canvas = e.Surface.Canvas;

    var scale = Resources.DisplayMetrics.Density;

    canvas.Scale(scale);

    if (_skBitmap != null)
        {
            var factor = scaledSize.Height / _skBitmap.Height;
            var nw = _skBitmap.Width * factor;
            var offset = (scaledSize.Width - nw) / 2;

            var sr = new SKRect(offset, 0, nw + offset, scaledSize.Height);
            canvas.DrawBitmap(_skBitmap, sr);
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM