相关疑难解决方法(0)

c#图像调整大小到不同大小,同时保留纵横比

我正在尝试调整图像大小,同时保留原始图像的宽高比,这样新图像看起来不会被压扁.

例如:

将150*100图像转换为150*150图像.
高度的额外50个像素需要用白色背景颜色填充.

这是我正在使用的当前代码.

它适用于调整大小,但更改原始图像的宽高比会压缩新图像.

private void resizeImage(string path, string originalFilename, 
                         int width, int height)
    {
        Image image = Image.FromFile(path + originalFilename);

        System.Drawing.Image thumbnail = new Bitmap(width, height);
        System.Drawing.Graphics graphic = 
                     System.Drawing.Graphics.FromImage(thumbnail);

        graphic.InterpolationMode = InterpolationMode.HighQualityBicubic;
        graphic.SmoothingMode = SmoothingMode.HighQuality;
        graphic.PixelOffsetMode = PixelOffsetMode.HighQuality;
        graphic.CompositingQuality = CompositingQuality.HighQuality;

        graphic.DrawImage(image, 0, 0, width, height);

        System.Drawing.Imaging.ImageCodecInfo[] info =
                         ImageCodecInfo.GetImageEncoders();
        EncoderParameters encoderParameters;
        encoderParameters = new EncoderParameters(1);
        encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality,
                         100L);            
        thumbnail.Save(path + width + "." + originalFilename, info[1], 
                         encoderParameters);
    }
Run Code Online (Sandbox Code Playgroud)

编辑:我想填充图像而不是裁剪

c# system.drawing image-processing image-scaling

77
推荐指数
8
解决办法
15万
查看次数

将图像转换为流

我正在使用一个上传图像,获取流并使用imageresizer.net调整大小的函数,然后将流上传到Amazon S3.

现在我想拍一张本地照片并将其转换为流.(调整大小并上传到amazonS3).基本上,如何将图像转换为流.

这可能是一个简单的问题,无法在任何地方找到答案.

这是一些基本代码.

Public Shared Sub MoveToAmazon(strImg As String, SKU As String)
        Dim fullImg As String = "C:\ImageLocation\" & strImg
        Dim img As Image = Image.FromFile(fullImg)

        'Here Im missing the code to convert it to a stream.
        UploadImage(imgStream, SKU)  

End Sub


Public Shared Sub UploadImage(imgStream As Stream, imgName As String)

    Dim MainStream As Stream = New MemoryStream
    Dim HomeStream As Stream = New MemoryStream
    Dim SmallStream As Stream = New MemoryStream
    Dim TinyStream As Stream = New MemoryStream …
Run Code Online (Sandbox Code Playgroud)

asp.net image amazon-s3 image-resizing imageresizer

4
推荐指数
1
解决办法
3981
查看次数