C\#밑그림 에서 텍스트 와 그림 을 동적 으로 생 성 합 니 다.

5592 단어 C#그림.문자.
본 고 는 주로 그림 에 동태 적 인 생 성 에 추가 해 야 할 문자 와 지정 한 그림 을 끝까지 그림 에 기록 하고 코드 를 직접 올 린 다.

/// <summary>
///             
/// </summary>
/// <param name="g">    </param>
/// <param name="path">    </param>
/// <param name="totalWidth">     </param>
/// <param name="totalHeight">     </param>
/// <param name="px">  X  </param>
/// <param name="py">  Y  </param>
  private void FontPic(ref Graphics g, string path, int totalWidth, int totalHeight, int px, int py)
  {
   if (File.Exists(path))
   {
    var pImg = Image.FromFile(path);
    //          ,   
    if (totalHeight < pImg.Height && totalWidth < pImg.Width)
    {
     Image newPic = GetReducedImage(pImg, totalWidth, totalHeight);
     if (newPic != null)
     {
      DrawPic(ref g, totalWidth, totalHeight, px, py, newPic);
     }
    }
    else if (totalHeight < pImg.Height && totalWidth >= pImg.Width)
    {
     Image newPic = GetReducedImage(pImg, pImg.Width, totalHeight);
     if (newPic != null)
     {
      DrawPic(ref g, totalWidth, totalHeight, px, py, newPic);
     }
    }
    else if (totalHeight >= pImg.Height && totalWidth < pImg.Width)
    {
     Image newPic = GetReducedImage(pImg, totalWidth, pImg.Height);
     if (newPic != null)
     {
      DrawPic(ref g, totalWidth, totalHeight, px, py, newPic);
     }
    }
    else
    {
     DrawPic(ref g, totalWidth, totalHeight, px, py, pImg);
    }
   }
  }
  /// <summary>
  ///       
  /// </summary>
  /// <param name="g">    </param>
  /// <param name="totalWidth">     </param>
  /// <param name="totalHeight">     </param>
  /// <param name="px">  X  </param>
  /// <param name="py">  Y  </param>
  /// <param name="pImg">       </param>
  private void DrawPic(ref Graphics g, int totalWidth, int totalHeight, int px, int py, Image pImg)
  {
   px += GetValue(totalWidth, pImg.Width);
   py += GetValue(totalHeight, pImg.Height);
 
   g.DrawImage(new Bitmap(pImg, new Size(GetSize(totalWidth, pImg.Width), GetSize(totalHeight, pImg.Height))),
    new Rectangle(px, py, totalWidth, totalHeight),
    0, 0, totalWidth, totalHeight, GraphicsUnit.Pixel);
  }
  /// <summary> 
  ///          1,      Image   
  /// </summary> 
  /// <param name="width">      </param> 
  /// <param name="height">      </param> 
  /// <returns>    Image  </returns> 
  public Image GetReducedImage(Image resourceImage, int width, int height)
  {
   try
   {
    Image data = null;
    //            Bitmap      
    using (Bitmap bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb))
    {
     //    Image     Graphics   
     using (Graphics graphics = Graphics.FromImage(bitmap))
     {
      //                 
      //graphics.Clear(Color.Transparent);
      //                    
      graphics.DrawImage(resourceImage, new Rectangle(0, 0, width, height));
     }
     data = new Bitmap(bitmap);
    }
    return data;
   }
   catch (Exception e)
   {
    throw e;
   }
  }
  /// <summary>
  ///      ,       (      )
  /// </summary>
  /// <param name="total">   </param>
  /// <param name="width">    </param>
  /// <returns></returns>
  public int GetSize(int total, int width)
  {
   if (total > width)
   {
    return width;
   }
   else
   {
    return total;
   }
  }
  /// <summary>
  ///             (     )
  /// </summary>
  /// <param name="total">   </param>
  /// <param name="width">    </param>
  /// <returns></returns>
  private int GetValue(int total, int width)
  {
   return (total - width) / 2;
  }
  /// <summary>
  ///         
  /// </summary>
  /// <param name="g">    </param>
  /// <param name="pointX">  x  </param>
  /// <param name="pointY">  y  </param>
  /// <param name="word">    </param>
  /// <param name="textWidth">    </param>
  /// <param name="textHeight">    </param>
  private static void DrawStringWord(Graphics g, int pointX, int pointY, string word, int textWidth, int textHeight, int fontSize = 30)
  {
   Font font = new Font("    ", fontSize, (FontStyle.Regular));
   RectangleF textArea = new RectangleF(pointX, pointY, textWidth, textHeight);
   Brush brush = new SolidBrush(Color.Black);
   g.DrawString(word, font, brush, textArea);
  }
이 방면 의 조작 이 필요 한 친구 에 게 도움 이 되 기 를 바 랍 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기