Я пытаюсь изменить размер растрового изображения .NET без фактического масштабирования изображения.Идея здесь состоит в том, чтобы создать пространство над и под изображением, заполнить его черным прямоугольником и поместить туда некоторый текст (не закрывая и не разрушая какую-либо часть исходного изображения).
Весь код ипримеры, которые я видел до сих пор, просто показывают, как масштабировать изображение, а не расширять холст.Пока все, что я пробовал самостоятельно, также масштабирует / растягивает изображение.
Вот что у меня есть:
Dim imageSize As System.Drawing.Size
Dim exifImage As Image
exifImage = System.Drawing.Image.FromFile(originalPath)
imageSize.Height = exifImage.Height
imageSize.Width = exifImage.Width
imageSize.Height += BLAH '' whatever I need to add to my height for the text
'' this doesn't work, because the image gets stretched instead of stuff getting added above and below
Dim exifOverlayImage As New System.Drawing.Bitmap(exifImage, imageSize)
Dim graphic As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(exifOverlayImage)
graphic.InterpolationMode = InterpolationMode.HighQualityBicubic
graphic.SmoothingMode = SmoothingMode.HighQuality
graphic.PixelOffsetMode = PixelOffsetMode.HighQuality
graphic.CompositingQuality = CompositingQuality.HighQuality
'' Draw Title at the Top
Dim upperBackgroundRectangle = New Rectangle(0, 0, imageSize.Width, pointFontSize * 2)
graphic.DrawRectangle(Pens.Black, upperBackgroundRectangle)
graphic.FillRectangle(Brushes.Black, upperBackgroundRectangle)
graphic.DrawString(upperTitleCommentString, watermarkFont, New SolidBrush(Color.White), New Point(0, 3))
'' ... and more stuff ...
Я подозреваю, что мне нужно изменить какой-то режим масштабированияИли, может быть, создать новый холст или нечто большее, чем мое оригинальное изображение?Мысли / советы будут с благодарностью.Спасибо.