Я пытаюсь добавить два изображения водяных знаков на изображениях, один в нижнем левом углу и в нижней правой части изображения, независимо от размеров изображения. Ниже мой метод:Размер шрифта для текста с водяным значком с одинаковыми размерами, но с разными значениями dpi
public void AddWaterMark(string leftSideText, string rightSideText, string imagePath)
{
string firstText = leftSideText;
string secondText = rightSideText;
Bitmap bitmap = (Bitmap)Image.FromFile(imagePath);//load the image file
PointF firstLocation = new PointF((float)(bitmap.Width * 0.035), bitmap.Height - (float)(bitmap.Height * 0.06));
PointF secondLocation = new PointF(((float)((bitmap.Width/2) + ((bitmap.Width/2) * 0.6))), bitmap.Height - (float)(bitmap.Height * 0.055));
int opacity = 155, baseFontSize = 50;
int leftTextSize = 0, rightTextSize = 0;
leftTextSize = (bitmap.Width * baseFontSize)/1920;
rightTextSize = leftTextSize - 5;
using (Graphics graphics = Graphics.FromImage(bitmap))
{
Font arialFontLeft = new Font(FontFamily.GenericSerif, leftTextSize);
Font arialFontRight = new Font(FontFamily.GenericSerif, rightTextSize);
graphics.DrawString(firstText, arialFontLeft, new SolidBrush(Color.FromArgb(opacity, Color.White)), firstLocation);
graphics.DrawString(secondText, arialFontRight, new SolidBrush(Color.FromArgb(opacity, Color.White)), secondLocation);
}
string fileLocation = HttpContext.Current.Server.MapPath("~/Images/Albums/") + Path.GetFileNameWithoutExtension(imagePath) + "_watermarked" + Path.GetExtension(imagePath);
bitmap.Save(fileLocation);//save the image file
bitmap.Dispose();
if (File.Exists(imagePath))
{
File.Delete(imagePath);
File.Move(fileLocation, fileLocation.Replace("_watermarked", string.Empty));
}
}
Проблемы Я облицовка с установкой font size
текста метки воды должным образом. Допустим, есть два изображения с размерами 1600 x 900
пикселей, а первое изображение имеет dpi
из 72
, а на втором изображении dpi
из 240
. Вышеуказанный метод отлично работает для изображения с 72
dpi, но для изображения с 240
dpi
текст текста водяных знаков font size
становится слишком большим и переливается на изображение. Как правильно рассчитать font size
с изображениями разных dpi
, но имеет такие же размеры?
Значит, вы хотите, чтобы шрифт был меньше для больших значений DPI? (Размер шрифта в пикселях, а не зависимый от DPI) – grek40