Problema con imagenes

28/11/2008 - 19:07 por [Juanjo] | Informe spam
Hola grupo:

Estoy haciendo una aplicación que quiero que haga los siguiente:
1. pinte un cuadrado:
Pen miLapiz = new Pen(Color.Red, 2);
Bitmap img = new Bitmap(600, 600);
Graphics g = Graphics.FromImage(img);
g.DrawRectangle(miLapiz, 200, 200, 100, 100);
this.img.Image = img;

Esto funciona bien, creo una imagen y luego la muestro en un
PictureBox (img)

2. rotar el cuadrado:
Bitmap b = new Bitmap(this.img.Image);
Bitmap nuevoBitmap = new Bitmap(b.Width, b.Height);
Graphics g = Graphics.FromImage(nuevoBitmap);

g.TranslateTransform((float)b.Width / 2, (float)b.Height / 2);
g.RotateTransform(5);
g.TranslateTransform(-(float)b.Width / 2, -(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
this.img.Image = nuevoBitmap;

Y esto rota el cuadrado, realmente rota toda la imagen,
pero tengo estos dos problemas:
1. cuando roto, el cuadrado, la linea del cuadrado, se difumina, pierde
mucha calidad la imagen
2. Si el cuadrado lo pinto cerca de una esquina, la imagen desaparece si
sigo rotando, hasta el punto que si roto 360º la imagen de 15 en 15 grados,
al final tengo una imagen circular, pierdo todo lo que hay en las esquinas.

Alguna idea, gracias de antemano

Preguntas similare

Leer las respuestas

#1 [Juanjo]
28/11/2008 - 19:45 | Informe spam
Muchas gracias por la respuesta.

El problema sigue igual.

Además si pinto un rectangulo igual de grande que la imagen, y lo roto 360º
como he comentado, al final el cuadrado se "convierte" en un circulo.

Alguna idea

"Gustavo Cantero" escribió en el mensaje de
noticias:
Juanjo:
Probá agregando estas líneas luego de crear el objeto Graphics:

g.CompositingQuality > System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.InterpolationMode > System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode > System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

Por favor contanos como te fue.
Suerte!

Gustavo A. Cantero
CEO - Scientia® Soluciones Informáticas
MCP - MCSD - MCTS
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar

De: [Juanjo] [mailto:]
Expuesto a las: Viernes, 28 de Noviembre de 2008 03:07 p.m.
Expuesto en: microsoft.public.es.csharp
Conversación: Problema con imagenes
Asunto: Problema con imagenes

Hola grupo:

Estoy haciendo una aplicación que quiero que haga los siguiente:
1. pinte un cuadrado:
Pen miLapiz = new Pen(Color.Red, 2);
Bitmap img = new Bitmap(600, 600);
Graphics g = Graphics.FromImage(img);
g.DrawRectangle(miLapiz, 200, 200, 100, 100);
this.img.Image = img;

Esto funciona bien, creo una imagen y luego la muestro en un

PictureBox (img)

2. rotar el cuadrado:
Bitmap b = new Bitmap(this.img.Image);
Bitmap nuevoBitmap = new Bitmap(b.Width,
b.Height);
Graphics g = Graphics.FromImage(nuevoBitmap);

g.TranslateTransform((float)b.Width / 2,
(float)b.Height / 2);
g.RotateTransform(5);
g.TranslateTransform(-(float)b.Width / 2,
-(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
this.img.Image = nuevoBitmap;

Y esto rota el cuadrado, realmente rota toda la imagen,
pero tengo estos dos problemas:
1. cuando roto, el cuadrado, la linea del cuadrado, se difumina, pierde
mucha calidad la imagen
2. Si el cuadrado lo pinto cerca de una esquina, la imagen desaparece si

sigo rotando, hasta el punto que si roto 360º la imagen de 15 en 15
grados,
al final tengo una imagen circular, pierdo todo lo que hay en las
esquinas.

Alguna idea, gracias de antemano

Respuesta Responder a este mensaje
#2 Gustavo Cantero
28/11/2008 - 20:33 | Informe spam
Juanjo:
Probá agregando estas líneas luego de crear el objeto Graphics:

g.CompositingQuality System.Drawing.Drawing2D.CompositingQuality.HighQuality;
g.InterpolationMode System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.SmoothingMode System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

Por favor contanos como te fue.
Suerte!

Gustavo A. Cantero
CEO - Scientia® Soluciones Informáticas
MCP - MCSD - MCTS
http://www.scientia.com.ar
http://www.programandoamedianoche.com
http://foro.scientia.com.ar

De: [Juanjo] [mailto:]
Expuesto a las: Viernes, 28 de Noviembre de 2008 03:07 p.m.
Expuesto en: microsoft.public.es.csharp
Conversación: Problema con imagenes
Asunto: Problema con imagenes

Hola grupo:

Estoy haciendo una aplicación que quiero que haga los siguiente:
1. pinte un cuadrado:
Pen miLapiz = new Pen(Color.Red, 2);
Bitmap img = new Bitmap(600, 600);
Graphics g = Graphics.FromImage(img);
g.DrawRectangle(miLapiz, 200, 200, 100, 100);
this.img.Image = img;

Esto funciona bien, creo una imagen y luego la muestro en un

PictureBox (img)

2. rotar el cuadrado:
Bitmap b = new Bitmap(this.img.Image);
Bitmap nuevoBitmap = new Bitmap(b.Width,
b.Height);
Graphics g = Graphics.FromImage(nuevoBitmap);

g.TranslateTransform((float)b.Width / 2,
(float)b.Height / 2);
g.RotateTransform(5);
g.TranslateTransform(-(float)b.Width / 2,
-(float)b.Height / 2);
g.DrawImage(b, new Point(0, 0));
this.img.Image = nuevoBitmap;

Y esto rota el cuadrado, realmente rota toda la imagen,
pero tengo estos dos problemas:
1. cuando roto, el cuadrado, la linea del cuadrado, se difumina, pierde
mucha calidad la imagen
2. Si el cuadrado lo pinto cerca de una esquina, la imagen desaparece si

sigo rotando, hasta el punto que si roto 360º la imagen de 15 en 15
grados,
al final tengo una imagen circular, pierdo todo lo que hay en las
esquinas.

Alguna idea, gracias de antemano
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida