using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using System.Runtime.InteropServices; using System.Security.AccessControl; using System.Text; using System.Threading.Tasks; using System.Windows; namespace DatamatrixNF { public class DatamatrixTextAddtion { Color FontColor = Color.Black; Color BackColor = Color.White; string Fontname = "Arial"; int FontSize = 12; int Height = 0; int Width = 0; public Bitmap UpdateText(Bitmap img, int format, string text, string fontname, int fontsize, int margin, int rotation) { Color FontColor = Color.Black; Color BackColor = Color.White; string FontName = fontname; int FontSize = fontsize; int Height = 0; int Width = 0; var objFont = new Font(FontName, FontSize); var image1bmp = new Bitmap(400, 400); Bitmap image1 = img; Graphics objFontsize = Graphics.FromImage(image1bmp); var sf = objFontsize.MeasureString(text, objFont); switch (format) { case 0: case 2: { if (image1.Width < 70) Width = Convert.ToInt32(sf.Width) + 10 + image1.Width; else Width = image1.Width * 3; break; } case 1: case 3: { if (image1.Width < 70) Width = Convert.ToInt32(sf.Width) + 10 + image1.Width; else Width = image1.Width * 3; break; } case 22: { if (image1.Height < 70) Height = Convert.ToInt32(sf.Height) + 10 + image1.Height; else Height = image1.Height * 3; break; } case 33: { if (image1.Height < 70) Height = Convert.ToInt32(sf.Height) + 10 + image1.Height; else Height = image1.Height * 3; break; } } Height = image1.Height; Bitmap objBitmap = new Bitmap(Width, Height); Graphics objGraphics = Graphics.FromImage(objBitmap); var objBrushForeColor = new SolidBrush(FontColor); var objBrushBackColor = new SolidBrush(BackColor); Color objColor; switch (format) { case 0: // rechts { objGraphics.FillRectangle(objBrushBackColor, 0, 0, Width, Height); objGraphics.DrawImage(image1, new System.Drawing.Point(0, 0)); Width = image1.Width + 20; Height = (int)image1.Height - (int)sf.Height - margin; var objPoint = new System.Drawing.Point(Width, Height); objGraphics.DrawString(text, objFont, objBrushForeColor, objPoint); break; } case 1: // links { objGraphics.FillRectangle(objBrushBackColor, 0, 0, Width, Height); objGraphics.DrawImage(image1, new System.Drawing.Point(Width - (int)image1.Width - margin, 0)); Width = margin + 20; Height = (int)image1.Height - (int)sf.Height - margin; var objPoint = new System.Drawing.Point(Width, Height); objGraphics.DrawString(text, objFont, objBrushForeColor, objPoint); break; } case 2: // links { objGraphics.FillRectangle(objBrushBackColor, 0, 0, Width, Height); var objPoint = new PointF(image1.Width + 10, Height - sf.Height - 0); objGraphics.DrawString(text, objFont, objBrushForeColor, objPoint); objGraphics.DrawImage(image1, new System.Drawing.Point(0, 0)); objBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); break; } case 3: { var stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Far; stringFormat.LineAlignment = StringAlignment.Near; objGraphics.FillRectangle(objBrushBackColor, 0, 0, Width, Height); var objPoint = new PointF(Width - image1.Width - 10, Height - sf.Height - 0); objGraphics.DrawString(text, objFont, objBrushForeColor, objPoint, stringFormat); objGraphics.DrawImage(image1, new System.Drawing.Point(Width - image1.Width, 0)); objBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); break; } case var @case when @case == 3: { break; } } image1 = null; switch (rotation) { case 90: { objBitmap.RotateFlip(RotateFlipType.Rotate90FlipNone); break; } case 180:{ objBitmap.RotateFlip(RotateFlipType.Rotate180FlipNone); break; } case 270:{ objBitmap.RotateFlip(RotateFlipType.Rotate270FlipNone); break; } } return objBitmap; } } }