Articles of system.drawing

InterpolationMode HighQualityBicubic apresentando artefatos na borda de imagens redimensionadas

Usando algum código C # padrão de ações para resize uma imagem e colocá-la em um plano de fundo colorido Image imgToResize = Image.FromFile(@”Dejeuner.jpg”); Size size = new Size(768, 1024); Bitmap b = new Bitmap(size.Width, size.Height); Graphics g = Graphics.FromImage((Image)b); g.InterpolationMode = InterpolationMode.HighQualityBicubic; g.FillRectangle(Brushes.Green, 0, 0, size.Width, size.Height); g.DrawImage(imgToResize, new Rectangle(0,150,768, 570)); b.Save(“sized_HighQualityBicubic.jpg”); O resultado […]

Desenhar uma string contrastada em uma imagem

Então, eu tenho um instantâneo de uma fonte de vídeo, que eu entro em uma imagem, pego um object Graphics para ele e, em seguida, desenhe um timestamp no canto inferior direito da imagem. Nenhum problema até agora. No entanto, eu não posso garantir que cor vai estar por trás do texto, então não importa […]

Não é possível renderizar imagem para HttpContext.Response.OutputStream

Basicamente, estou tentando renderizar uma imagem simples em um manipulador do ASP.NET: public void ProcessRequest (HttpContext context) { Bitmap image = new Bitmap(16, 16); Graphics graph = Graphics.FromImage(image); graph.FillEllipse(Brushes.Green, 0, 0, 16, 16); context.Response.ContentType = “image/png”; image.Save(context.Response.OutputStream, ImageFormat.Png); } Mas recebo a seguinte exceção: System.Runtime.InteropServices.ExternalException: A generic error occurred in GDI+. at System.Drawing.Image.Save(Stream stream, ImageCodecInfo […]

Converta pixels para polegadas e vice-versa em c #

Eu estou olhando para converter pixes para polegadas e vice-versa. Eu entendo que eu preciso de DPI, mas não tenho certeza de como obter essa informação (por exemplo, eu não tenho o object Graphics , então isso não é uma opção). Há algum caminho?

OutOfMemoryException: Sem memory – System.Drawing.Graphics.FromImage

Eu recebo exceção Out of Memory ao usar System.Drawing.Graphics.FromImage (usando versões mais recentes do software .NET no servidor Windows 2012), SOMENTE em alguns arquivos de imagem específicos . Na maioria das vezes o código funciona bem. Respostas típicas ao problema acima indicam que determinados resources não estão sendo liberados. Por favor, considere o seguinte antes […]

Espaçamento de letra C Drawstring

É de alguma forma possível controlar o espaçamento das letras ao usar Graphics.DrawString? Eu não consigo encontrar qualquer sobrecarga para DrawString ou Font que me permita fazê-lo. g.DrawString(“MyString”, new Font(“Courier”, 44, GraphicsUnit.Pixel), Brushes.Black, new PointF(262, 638)); Por espaçamento entre letras quero dizer a distância entre as letras. Com espaçamento, o MyString poderia parecer com o […]

Redimensionamento de Imagem em C # – Algoritmo para determinar as dimensões de redimensionamento (altura e largura)

Preciso reduzir uma imagem que tenha uma altura ou largura maior que um valor de pixel predefinido. Escrevi um código que analisa a imagem original, verifica se a largura, a altura ou a altura e a largura são maiores que as configurações de largura máxima / altura máxima. Agora preciso descobrir quais dimensões serão redimensionadas […]

Justificando texto usando DrawString em c #

Eu estou desenhando texto em um object System.Drawing.Graphics . Eu estou usando o método DrawString , com a seqüência de texto, uma Font , um Brush , um RectangleF delimitador e um StringFormat como argumentos. Analisando o StringFormat , descobri que posso definir sua propriedade Alignment como Near , Center ou Far . No entanto, […]

Como ativar o anti-aliasing ao renderizar o WMF em BitMap em C # / WPF / WinForms?

Por que as linhas etc não são suavizadas ao fazer isso? using (var myGraphics = Graphics.FromImage(bitmap)) { myGraphics.CompositingQuality = CompositingQuality.HighQuality; myGraphics.SmoothingMode = SmoothingMode.HighQuality; myGraphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; myGraphics.Clear(backgroundColor); myGraphics.EnumerateMetafile(m_metafile, new Point(0, 0), m_metafileDelegate); } A function delegada é assim: private bool MetafileCallback(EmfPlusRecordType recordType, int flags, int dataSize, IntPtr data, PlayRecordCallback callbackData) { byte[] dataArray = null; […]

Bitmap de salvamento de erro genérico GDI + criado a partir da memory usando LockBits

O erro genérico GDI + ao salvar um bitmap é obviamente um problema comum, de acordo com minha pesquisa aqui no SO e na Web. Dado o seguinte trecho simplificado: byte[] bytes = new byte[2048 * 2048 * 2]; for (int i = 0; i < bytes.Length; i++) { // set random or constant pixel […]