using NaiBa.Util.Extension; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using TemuKJD.BaseForms; namespace TemuKJD.ToolForms { public partial class ImgToolForm : Form { public ImgToolForm() { InitializeComponent(); } Image baseImg; Image newImg; private void btnMake_Click(object sender, EventArgs e) { if(baseImg == null) { BaseMsgForm.ShowError("请先选择图片"); return; } var newImg = new Bitmap(baseImg.Width, baseImg.Height); using (Graphics g = Graphics.FromImage(newImg)) { //g.Clear(Color.White); g.DrawImage(baseImg, new Rectangle(0, 0, newImg.Width, newImg.Height), 0, 0, baseImg.Width, baseImg.Height, GraphicsUnit.Pixel); g.FillRectangle(Brushes.White, txtX.Text.Trim().ParseToInt(), txtY.Text.Trim().ParseToInt(), 500, 120); //Font font = new Font("宋体", txtSize.Text.Trim().ParseToInt(), FontStyle.Bold); Font font = new Font("宋体", txtSize.Text.Trim().ParseToInt(), FontStyle.Regular); //Font font = new Font("微软雅黑", 15, FontStyle.Regular); Brush textBrush = Brushes.Black; textBrush = new SolidBrush(Color.FromArgb(0,0,0)); g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit; RectangleF rectF = new RectangleF(txtX.Text.Trim().ParseToInt(), txtY.Text.Trim().ParseToInt(), baseImg.Width - 80, baseImg.Height - 80); if (!string.IsNullOrWhiteSpace(textBox1.Text.Trim())) g.DrawString(textBox1.Text.Trim(), font, textBrush, rectF); } this.pbImage.Image = newImg; } private void btnSave_Click(object sender, EventArgs e) { if (this.pbImage.Image == null) { BaseMsgForm.ShowError("图片为空!"); return; } string fileName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".jpg"; if (!string.IsNullOrEmpty(this.pbImage.ImageLocation)) { fileName = this.pbImage.ImageLocation.Replace("://", ".").Replace('/', '.'); } SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "JPeg Image|*.jpg;*.jpeg"; sfd.Title = "保存图片"; sfd.FileName = fileName; if (sfd.ShowDialog() == DialogResult.OK) { try { pbImage.Image.Save(sfd.FileName, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception ex) { BaseMsgForm.ShowError(ex.Message); } } } private void btnSelectImg_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Multiselect = false; // 设置过滤条件,只显示文本文件 openFileDialog.Filter = "图片文件 (*.jpeg;*.jpg;*.png)|*.jpeg;*.jpg;*.png|All files (*.*)|*.*"; // 显示对话框并获取结果 if (openFileDialog.ShowDialog() == DialogResult.OK) { try { string filePath = openFileDialog.FileName; Image image = Image.FromFile(filePath); string imgBase64 = ""; using (MemoryStream memoryStream = new MemoryStream()) { image.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Jpeg); byte[] imageBytes = memoryStream.ToArray(); imgBase64 = Convert.ToBase64String(imageBytes); } //string img_md5 = BaseClass.GetMd5(imgBase64); if (this.pbImage.Tag.ParseToString() != imgBase64) { this.pbImage.Tag = imgBase64; this.pbImage.ImageLocation = ""; this.pbImage.Image = image; this.baseImg = image; } } catch (Exception ex) { BaseMsgForm.ShowError("打开自定义sku图片失败 " + ex.Message); return; } } } } }