Si tengo una imagen de la cual conozco la altura y el ancho, ¿cómo puedo colocarla en un rectángulo con el mayor tamaño posible sin estirar la imagen?Haga que una imagen encaje en un rectángulo
El pseudocódigo es suficiente (pero voy a usar esto en Java).
Gracias.
Así que, basado en la respuesta, escribí esto: pero no funciona. ¿Qué hago mal?
double imageRatio = bi.getHeight()/bi.getWidth();
double rectRatio = getHeight()/getWidth();
if (imageRatio < rectRatio)
{
// based on the widths
double scale = getWidth()/bi.getWidth();
g.drawImage(bi, 0, 0, (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
if (rectRatio < imageRatio)
{
// based on the height
double scale = getHeight()/bi.getHeight();
g.drawImage(bi, 0, 0 , (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
¿Quieres decir mantener la relación de aspecto en términos de ajuste? –
@SB: Creo que sí (no entiendo exactamente lo que quiere decir ...) Por lo tanto, la fracción de ancho y alto tiene que ser la misma para la imagen de origen y la imagen a escala. –