zoukankan      html  css  js  c++  java
  • C# GDI

    绘制实心矩形

    using (Graphics gp = Graphics.FromImage(bmBlank))
    {
    //...
       int y = (int)currentPoint.Y - 5;
       Rectangle rec = new Rectangle(87, y, 40, 30);//画一个白块,即起到擦拭的效果
       gp.FillRectangle(Brushes.White, rec);

     Brushes颜色参考

    绘图基本方法

    string backImage = GetMaterialPath(param, this.reportType) + "image_blank_1.png";
    using (Image im = Image.FromFile(backImage))
    {
        using (Bitmap bmBlank = new Bitmap(230, 60, Graphics.FromImage(im)))
        {
            using (Graphics gp = Graphics.FromImage(bmBlank))
            {
                gp.DrawImage(im, new Point(0, 0));
                int width = (int)GetWidth_1(teamScore);
                Rectangle rec = new Rectangle((int)baseX, (int)baseY, width, 29);
                gp.FillRectangle(Brushes.Gold, rec);
            }
            ImageOperation.SaveImage(bmBlank, saveImgFilePath, 100000);
        }
    }
    //自定义工具类ImageOperation
    public static void SaveImage(Bitmap myBitmap,string fileName, int quality)
    {
    
        System.Drawing.Imaging.EncoderParameters myEncoderParameters =
            new System.Drawing.Imaging.EncoderParameters(1);
    
        System.Drawing.Imaging.EncoderParameter myEncoderParameter =
            new System.Drawing.Imaging.EncoderParameter(
            System.Drawing.Imaging.Encoder.Quality, quality);
    
        myEncoderParameters.Param[0] = myEncoderParameter;
    
        System.Drawing.Imaging.ImageCodecInfo myImageCodecInfo;
        myImageCodecInfo = GetEncoderInfo("image/jpeg");
    
    
        string ext = myImageCodecInfo.FilenameExtension.Split(';')[0];
        ext = System.IO.Path.GetExtension(ext).ToLower();
    
        string saveName = System.IO.Path.ChangeExtension(fileName, ext);
    
        //保存
        myBitmap.Save(saveName, myImageCodecInfo, myEncoderParameters);
    }
    using (FileStream fs = new FileStream(saveImgFilePath, FileMode.Create))
    {
        ImageCodecInfo imageCodeInfo = ImageOperation.GetEncoderInfo("image/jpeg");
        System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
        EncoderParameters myEncoderParameters = new EncoderParameters(1);
        myEncoderParameters.Param[0] = new EncoderParameter(myEncoder, 99L);
        bmBlank.Save(fs, imageCodeInfo, myEncoderParameters);
    }

    原生自定义背景色

    Bitmap bmBlank = new Bitmap(width, height);
    using (Graphics gp = Graphics.FromImage(bmBlank))
    {
        //清空画布并以白色背景色填充 
        gp.Clear(Color.White);
        for (int i = 0; i < imagePaths.Length; i++)
        {
             //加载一个图片
            string imagePath = imagePaths[i];
            //封装成Bitmap
            Bitmap bm = new Bitmap(Image.FromFile(imagePath));
            //切割此Bitmap为了等比例缩放
            Bitmap newbm = ImageOperation.Cut(bm, 200, 0, 800, 800);
            //查找所绘制每张图的新坐标
            int x = xValue[i];
            int y = yValue[i];
            gp.DrawImage(newbm, x, y, 400, 400);
            bm.Dispose();
        }
        gp.Dispose();
        //保存为图片...  
    }    
  • 相关阅读:
    Qt计算器开发(三):执行效果及项目总结
    [HNOI2019]校园旅行
    How to fix nuget Unrecognized license type MIT when pack
    How to fix nuget Unrecognized license type MIT when pack
    git 通过 SublimeMerge 处理冲突
    git 通过 SublimeMerge 处理冲突
    git 上传当前分支
    git 上传当前分支
    gif 格式
    gif 格式
  • 原文地址:https://www.cnblogs.com/zhuji/p/6296458.html
Copyright © 2011-2022 走看看