Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/05/2006, 18:32
Avatar de u_goldman
u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 1 mes
Puntos: 98
Si, lo que sucede es que el GDI no guarda los jpgs con la máxima calidad posible, por ende, se ven bastante feos si son grandes, básicamente necesitas obtener los CODECS(compression/decompression) para el formato y después, establecer la calidad, de modo que la forma en la que guardas la imagen cambiará un poco.

Necesitarás utilizar System.Drawing y System.Drawing.Imaging

Te dejo un ejemplo rápido (C#):

Código:
public virtual ImageCodecInfo GetImageCodec(string imageType)
{
	ImageCodecInfo[] arrayICI = ImageCodecInfo.GetImageEncoders();
	ImageCodecInfo codecType = null;
	for (int x = 0; x < arrayICI.Length; x++)
	{
		if (arrayICI[x].FormatDescription.Equals(imageType))
		{
			codecType = arrayICI[x];
			break;
		}
	}
	return codecType;
}

public virtual EncoderParameters GetEncoderParameters()
{
	//Set default quality for images
	System.Drawing.Imaging.EncoderParameters encoderParams = new System.Drawing.Imaging.EncoderParameters();
	//0 - 100 Highest possible quality
	long[] quality = new long[1];
	quality[0] = Convert.ToInt16(System.Configuration.ConfigurationSettings.AppSettings["ImageQuality"].ToString());
	System.Drawing.Imaging.EncoderParameter encoderParam = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
	//System.Drawing.Imaging.Encoder.
	encoderParams.Param[0] = encoderParam;
	//End Quality
	
	return encoderParams;
}

Código:
outBitmap.Save( thumbnailStream, image.GetImageCodec("JPEG"), encoderParams );
Donde:
- outBipmap es mi mapa de bits
- thumbnailStream es mi stream
- Utilizo una clase image para y los métodos son los de arriba.


Saludos

[EDIT]Ten cuidado con la calidad de la image, yo nunca la pude establecer a 100, la dejé en 95 en el webconfig[/EDIT]
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway