Я использую API GetUserMedia для захвата изображения и рисования его на холсте. Используя toDataURL() холста, я получаю «ImageUrl». URL-адрес сохраняется в виде файла PNG в локальном файле. Я ищу, что перед сохранением изображения добавьте комментарий о изображении внизу изображения (не поверх изображения), как нижний колонтитул. У меня есть код ниже. Может ли кто-нибудь предложить мне, как это сделать в C#.Добавление нижнего колонтитула в изображение в C#
ответ
Вы можете создать новый битмап, который будет выше от исходного изображения, чтобы соответствовать нижнему колонтитулу ниже. Затем скопируйте исходное изображение и нижний колонтитул в это растровое изображение и сохраните новое растровое изображение.
Метод делать хотел бы это (предполагая, что ширина FOOTER < = ширина изображения):
public Bitmap AppendImageFooter(System.Drawing.Image bmp, System.Drawing.Image footer)
{
//Create new image that will be bigger then original image to make place for footer
Bitmap newImage = new Bitmap(bmp.Height+footer.Height,bmp.Width);
//Get graphics from new Image and copy original image and next footer below
Graphics g = Graphics.FromImage(newImage);
g.DrawImage(bmp, new Point(0, 0));
g.DrawImage(footer, new Point(0, bmp.Height));
g.Dispose();
return newImage;
}
И вы можете вписать его в свой код в этом месте:
var footer = Image.FromFile("path_to_your_footer.png");
imageByte= Convert.FromBase64String(ImageUrl);
using (var streamBitmap = new MemoryStream(imageByte))
{
using (var img = Image.FromStream(streamBitmap))
{
var imageWithFooter = AppendImageFooter(img, footer);
imageWithFooter.Save(localPath);
}
}
Edited в ответ на дополнительный вопрос из комментариев:
Вы можете построить нижний колонтитул во время выполнения. Пример кода ниже, конечно, вы можете сделать все, что вам нравится в любой стиль вам нравится:
public Bitmap AppendImageFooter(System.Drawing.Image bmp, string text)
{
//Create new image that will be bigger then original image to make place for footer
Bitmap newImage = new Bitmap(bmp.Height+200,bmp.Width);
//Get graphics and copy image and below the footer
Graphics g = Graphics.FromImage(bmp);
g.DrawImage(bmp, new Point(0, 0));
g.FillRectangle(new SolidBrush(Color.Black), 0, bmp.Height, bmp.Width, 200);
g.DrawString(text, new Font("Arial", 14), new SolidBrush(Color.White), 20, bmp.Height + 20);
//Anything else you like, circles, rectangles, texts etc..
g.Dispose();
return newImage;
}
Можете ли вы создать нижний колонтитул во время выполнения, вместо этого взять из какого-то источника –
@VivekRanjan Конечно, только что обновил мое сообщение с помощью метода меток, который создает черный нижний колонтитул с белым текстом во время выполнения. Вы можете рисовать аналогичным образом, как вам нравится, даже комбинировать графическое изображение + текст (например, логотип + url) или что-то еще. –
Вот самый простой способ: Я только что создал новый образ (сноска), новое изображение, на котором старый образ + изображение нижнего колонтитула.
int footerHeight = 30;
Bitmap bitmapImg = new Bitmap(img);// Original Image
Bitmap bitmapComment = new Bitmap(img.Width, footerHeight);// Footer
Bitmap bitmapNewImage = new Bitmap(img.Width, img.Height + footerHeight);//New Image
Graphics graphicImage = Graphics.FromImage(bitmapNewImage);
graphicImage.Clear(Color.White);
graphicImage.DrawImage(bitmapImg, new Point(0, 0));
graphicImage.DrawImage(bitmapComment, new Point(bitmapComment.Width, 0));
graphicImage.DrawString("Hi, This is Vivek !", new Font("Arial", 15), new SolidBrush(Color.Black), 0, bitmapImg.Height + footerHeight/6);
bitmapNewImage.Save(yourImagePath);
bitmapImg.Dispose();
bitmapComment.Dispose();
bitmapNewImage.Dispose();
'IMG' исходное изображение.
- 1. Добавление верхнего и нижнего колонтитула в graphviz
- 2. Добавление нижнего колонтитула для GridButtonColumn
- 3. Прямо добавление нижнего колонтитула в JQuery DataTable
- 4. Добавление верхнего и нижнего колонтитула в макет
- 5. добавление нижнего колонтитула на страницу в HttpModule
- 6. Добавление нижнего колонтитула в существующий PDF
- 7. Добавление нижнего колонтитула в RECYCLER VIEW?
- 8. Добавление нижнего колонтитула в документ RML
- 9. добавление значения нижнего колонтитула к datagridview в C#
- 10. текст нижнего колонтитула перемещен из нижнего колонтитула
- 11. Добавление окна «найти/заменить» для нижнего колонтитула
- 12. Добавление текста нижнего колонтитула SVG или PDF
- 13. Добавление нижнего колонтитула с использованием perl
- 14. добавление заголовка и нижнего колонтитула к контроллеру
- 15. Добавление нижнего колонтитула в диаграмму управления диаграммами Microsoft
- 16. Добавление записи с использованием нижнего колонтитула Gridview
- 17. Как сделать изображение карты нижнего колонтитула
- 18. У вас есть изображение из нижнего колонтитула
- 19. Изображение нижнего колонтитула CSS не отображается
- 20. Фоновое изображение, останавливающееся после нижнего колонтитула
- 21. Плавающий изображение плавающего нижнего колонтитула также
- 22. Растяжка нижнего колонтитула в нижней части страницы
- 23. Как повернуть изображение при достижении нижнего колонтитула
- 24. Изображение нижнего колонтитула не прилипает к основанию
- 25. палка нижнего колонтитула внизу
- 26. Переполнение нижнего колонтитула
- 27. Часть нижнего колонтитула скрывается
- 28. Как добавить изображение нижнего колонтитула в pdf в itext 5.3.5
- 29. Добавление нижнего колонтитула страницы в pdf с помощью itext
- 30. Проблема нижнего колонтитула в Safari
Вы можете загрузить колонтитул из другого изображения и объединить их с помощью Graphics.FromImage. Извините за короткий ответ, я пишу с телефона. Тем не менее, я уверен, что на StackOverflow есть много ответов о «комбинировать изображения». Взгляните на это http://stackoverflow.com/questions/7206510/combine-two-images-into-one-new-image http://stackoverflow.com/questions/6383123/merge-two-images-to- create-a-single-image-in-c-net –
@ Yeldar Kurmangaliyev Как создать нижний колонтитул той же ширины оригинального изображения? Вы имели в виду это. Bitmap bitmapImg = новый битмап (img); Графика графика = Graphics.FromImage (bitmapImg); graphics.DrawString («мой комментарий», новый шрифт («Tahoma», 60), Brushes.Red, 0, 0); bitmapImg.Save (localpath, img.RawFormat); –
Да. Вам нужно рассчитать правильное местоположение и размер добавленной строки. –