文档章节

压缩/缩放图片

元丰山人
 元丰山人
发布于 2017/04/01 16:13
字数 183
阅读 7
收藏 0

 public static Bitmap GetThumbnail(this Bitmap bmp, int destHeight, int destWidth)
        {
            System.Drawing.Image imgSource = bmp;
            System.Drawing.Imaging.ImageFormat thisFormat = imgSource.RawFormat;
            int sW = 0, sH = 0;
            // 按比例缩放
            int sWidth = imgSource.Width;
            int sHeight = imgSource.Height;
            if (sHeight > destHeight || sWidth > destWidth)
            {
                if ((sWidth * destHeight) > (sHeight * destWidth))
                {
                    sW = destWidth;
                    sH = (destWidth * sHeight) / sWidth;
                }
                else
                {
                    sH = destHeight;
                    sW = (sWidth * destHeight) / sHeight;
                }
            }
            else
            {
                sW = sWidth;
                sH = sHeight;
            }
            Bitmap outBmp = new Bitmap(destWidth, destHeight);
            Graphics g = Graphics.FromImage(outBmp);
            g.Clear(Color.Transparent);
            // 设置画布的描绘质量
            g.CompositingQuality = CompositingQuality.HighQuality;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            g.DrawImage(imgSource, new Rectangle((destWidth - sW) / 2, (destHeight - sH) / 2, sW, sH), 0, 0, imgSource.Width, imgSource.Height, GraphicsUnit.Pixel);
            g.Dispose();
            // 以下代码为保存图片时,设置压缩质量
            EncoderParameters encoderParams = new EncoderParameters();
            long[] quality = new long[1];
            quality[0] = 100;
            EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
            encoderParams.Param[0] = encoderParam;
            imgSource.Dispose();
            return outBmp;
        }

© 著作权归作者所有

元丰山人
粉丝 0
博文 10
码字总数 2198
作品 0
珠海
程序员
私信 提问
android图片压缩的3种方法实例

android图片压缩的3种方法实例 发布:shangke 字体:[增加 减小] 类型:转载 这篇文章介绍了android图片压缩的3种方法实例,有需要的朋友可以参考一下 android 图片压缩方法:第一:质量压缩...

wanyang
2014/02/20
0
0
android 比较靠谱的图片压缩

第一:我们先看下质量压缩方法: Java代码 private Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); image.compress(Bitmap.CompressFor......

Airship
2015/01/18
0
0
图片的填充模式

ScaleToFill imageView小于图片尺寸,就会被压缩,然后图片看起来就变胖了 ScaleAspectFit 内容缩放以适应固定的方面。剩下的是透明的 ---->如果图片的尺寸大于imageView的,他会等比例缩放,缩到...

就不穿小内
2015/12/15
23
0
【开源】canvas图像裁剪、压缩、旋转

前言 前段时间遇到了一个移动端对图像进行裁剪、压缩、旋转的需求。 考虑到已有各轮子的契合度都不高,于是自己重新造了一个轮子。 关于图像裁剪、压缩 在HTML5时代,的功能已经非常强大了,...

dailc
02/18
0
0
【开源】canvas图像裁剪、压缩、旋转

前言 前段时间遇到了一个移动端对图像进行裁剪、压缩、旋转的需求。 考虑到已有各轮子的契合度都不高,于是自己重新造了一个轮子。 关于图像裁剪、压缩 在HTML5时代,的功能已经非常强大了,...

撒网要见鱼
2017/11/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenCv + ffmpeg + rtmp 实现摄像头采集数据直播功能

采用OpenCv获取图像数据,通过ffmpeg推流给rtmp服务器 OpenCV获取的图像数据为BGR格式,需要转换成YUV格式,再将其编码为h264格式,通过ffmpeg推流 头文件 extern "C"{#include <libavco...

cloudjx
19分钟前
1
0
服务器yum源更新为阿里云yum源

1 备份下原来的yum源 cd /etc/yum.repos.d/ mv CentOS-Base.repo CentOS-Base.repo_bak 1 2 3 2 获取阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/re......

Mr_Tea伯奕
26分钟前
0
0
CLEARTEXT communication to xxx not permitted by network security policy

Android P http网络请求不通,报出异常:java.net.UnknownServiceException: CLEARTEXT communication to xxxx not permitted by network security policy Google表示,为保证用户数据和设备......

醉雨
40分钟前
3
0
开发函数计算的正确姿势 —— 移植 next.js 服务端渲染框架

首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准...

阿里云云栖社区
今天
1
0
Windows获取其他进程中Edit控件的内容

最近做的MFC项目中,有个获取其他进程中Edit控件内容的需求,本来以为是个很简单的问题,但是来来回回折腾了不少时间,发博记录一下。   刚开始拿到这个问题,很自然的就想到GetDlgItemTex...

WinkJie
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部