Tengo un archivo bmp y estoy tratando de convertirlo a formato jpeg. El jpeg creado con el siguiente código pierde mucha claridad. He intentado ajustar muchas configuraciones sin ningún resultado.Problema al convertir bmp a jpg usando TJpegImage Componente
¿Alguien tiene una función que convertirá un archivo bmp en un jpeg?
var
Bmp: TBitmap;
Jpg: TJPEGImage;
begin
Bmp := TBitmap.Create;
Jpg := TJPEGImage.Create;
try
Bmp.LoadFromFile(BmpFileName);
Jpg.Assign(Bmp);
jpg.PixelFormat :=jf24bit; // or jf8bit
Jpg.CompressionQuality := 100;
Jpg.ProgressiveDisplay := False;
Jpg.ProgressiveEncoding := False;
Jpg.SaveToFile(JpgFileName);
finally
Jpg.Free;
Bmp.Free;
end;
end;
Actualización II Una gran cantidad de personas que han respondido que JPEG no es el tipo de gráfico para usar en este caso. Entendido. No para vencer a un caballo muerto, pero he podido usar otros programas (es decir, Photoshop) y convertir esto en un bonito jpeg. Y la herramienta que estoy usando para crear el gráfico (fusioncharts) también puede exportarlo a un jpeg atractivo (ver abajo). ¿Cuál es la diferencia?
No sé si este es el problema. Es posible que desee establecer la configuración de calidad ANTES de asignar el BMP al Jpg. La conversión puede ocurrir en la asignación y no en guardar en el archivo. –
@gbrandt: No, la declaración está perfectamente bien donde está. –
Hice un poco de seguimiento sobre esto. Por lo que puedo deducir parece perder la claridad durante la llamada a savetofile. En mi proyecto agregué un TImage y le asigno el jpeg. Rinde bien. –