zoukankan      html  css  js  c++  java
  • Graphics 小记

    1.切图

    drowg.DrawImage(productImg1, new System.Drawing.Rectangle(30, 30, 300, 300), new System.Drawing.Rectangle(0, 0, 100, 100), System.Drawing.GraphicsUnit.Pixel);

    2个Rectangle的理解。之前对这个理解有误。(将2个区域的作用理解反了。)

    来理解下这2个Rectangle的意思。。先看第二个

    第二个Rectangle。( new System.Drawing.Rectangle(0, 0, 100, 100))

    切图,表示将原图从x:0,y:0的位置进行剪切w:100,h:100。

    第一个Rectangle。( new System.Drawing.Rectangle(30, 30, 300, 300))

    填充,表示将第二个Rectangle的区域填充至x:30,y:30的位置。并设置w:300,h:300.进行伸缩。

     2.旋转

    需求:在画布中完成图片旋转的功能,网上倒是有很多但都不合意。下面是我用的方法:

        public static void DrawImg(this Bitmap canvas, int angle, Image img, int imgX, int imgY, int imgW, int imgH)
        {
            var g1 = Graphics.FromImage(canvas);
    
            g1.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
            g1.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
    
            //计算X,Y的原点
            var pointX = imgX + imgW / 2;
            var pointY = imgY + imgH / 2;
    
            g1.TranslateTransform(pointX, pointY);
            //旋转角度
            g1.RotateTransform(angle);
            //恢复原点
            g1.TranslateTransform(-pointX, -pointY);
            //画图
            g1.DrawImage(img, new System.Drawing.Rectangle(imgX, imgY, imgW, imgH));
            g1.ResetTransform();
        }

    调用:

            canvas.DrawImg(0, productImg1, 0, 0, 300, 300);
            canvas.DrawImg(20, productImg2, 0, 0, 100, 100);
            canvas.DrawImg(30, productImg3, 100, 100, 200, 200);
            canvas.DrawImg(240, productImg4, 200, 200, 300, 300);
            canvas.DrawImg(350, productImg5, 300, 300, 150, 150);
  • 相关阅读:
    Nginx安装与运行配置总结
    不知道为什么随笔分类出不来
    springboot打war包
    python爬取网站页面时,部分标签无指定属性而报错
    python爬取某站新闻,并分析最近新闻关键词
    插了带蠕虫的U盘后,文件不见了怎么快速恢复
    CompTIA Security+ 常见知识点
    JAVA学习--集合的遍历
    JAVA学习--ArrayList使用方法:List的主要实现类
    JAVA学习--异常Exception的处理
  • 原文地址:https://www.cnblogs.com/shikyoh/p/3539469.html
Copyright © 2011-2022 走看看