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();
        //保存为图片...  
    }    
  • 相关阅读:
    NetSuite Batch Process Status
    NetSuite generated bank files and the Bank Reconciliation process
    Global Search file content in Gitlab repositories, search across repositories, search across all files
    FedEx Package Rate Integration with NetSuite direct integrate by WebServices
    git Merge branches
    git tag and NetSuite deployment tracking
    API 读写cookie的方法
    C# 生成缩略图
    解决jquery操作checkbox全选全不选无法勾选问题
    JS读取写入删除Cookie方法
  • 原文地址:https://www.cnblogs.com/zhuji/p/6296458.html
Copyright © 2011-2022 走看看