简体   繁体   English

ImageHandlers 和 GetEncoder 在当前上下文 xamarin 中不存在,怎么办?

[英]ImageHandlers and GetEncoder doesnt exists in current context xamarin, what to do?

I need to create thumbnails to save performance in app i have this code and it writes me GetEncoder and ImageHandlers doesnt exists in current context.我需要创建缩略图以节省应用程序的性能我有这个代码,它写给我 GetEncoder 和 ImageHandlers 在当前上下文中不存在。 Do you know why it isnt working?你知道为什么它不起作用吗? Also do you know better way how to do thumbnail?您还知道如何制作缩略图的更好方法吗?

here is code:这是代码:

public static void CreatePreviewImage(string imageFullFilename, string previewFullFilename)
    {
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        // Create an Encoder object based on the GUID  
        // for the Quality parameter category.  
        System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
        // Create an EncoderParameters object.  
        // An EncoderParameters object has an array of EncoderParameter  
        // objects. In this case, there is only one
        // EncoderParameter object in the array.  
        EncoderParameters myEncoderParameters = new EncoderParameters(1);
        EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 75L); //default
        myEncoderParameters.Param[0] = myEncoderParameter;

        Bitmap originalimage = (Bitmap)System.Drawing.Image.FromFile(imageFullFilename, true);
        originalimage.SetResolution(72, 72);

        int w = originalimage.Width;
        int h = originalimage.Height;
        int pw = 0;
        int ph = 0;

        h = originalimage.Height * w / originalimage.Width;

        if (w > h)
        {
            pw = 200;
            ph = h * pw / w;
        }
        else
        {
            ph = 200;
            pw = w * ph / h;
        }

        Bitmap previewImage = ImageHandlers.ResizeImage(originalimage, pw, ph);
        previewImage.Save(previewFullFilename, jpgEncoder, myEncoderParameters);
    }

I have used Skiasharp and it works:我使用了 Skiasharp 并且它有效:

var resizedImage = bitmap.Resize(new SKImageInfo(newWidth, newHeight), SKBitmapResizeMethod.Lanczos3);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM