Sto tentando di ridimensionare un'immagine mantenendo le proporzioni. Dovrebbe essere abbastanza grande da riempire lo schermo senza spazi vuoti e, se necessario, alcune immagini dovrebbero essere fuori dallo schermo.Calcolo della dimensione dell'immagine mantenendo le proporzioni con risoluzioni dello schermo diverse
L'immagine seguente mostra come deve essere dimensionata l'immagine gialla in base alla dimensione dello schermo nero.
Heres il codice che sto usando in realtà, c'è un modo migliore per fare questo?
if(bwidth > bheight) {
if(bwidth > swidth && bheight > sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth > swidth && bheight < sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth < swidth && bheight > sheight) {
new_height = sheight;
new_width = (int) ((double) (bwidth/100)*(sheight/((double) (bheight)/100)));
} else if(bwidth >= swidth && bheight >= sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
}
} else if(bwidth < bheight) {
if(bwidth > swidth && bheight > sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight > sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth < swidth && bheight < sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
} else if(bwidth >= swidth && bheight >= sheight) {
new_width = swidth;
new_height = (int) ((double) (bheight/100)*(swidth/((double) (bwidth)/100)));
}
}
- swidth = larghezza dello schermo
- sheight = schermo altezza
- bWidth = Larghezza immagine
- bHeight = altezza dell'immagine
vuoi tagliare zona invisibile o per modificare il rapporto – mKorbel
non so se il taglio è necessario, dal momento che sarà non visibile, si deve solo adattarsi al schermo, sempre –
hai un bel po 'di codice ridondante lì - che ne dici di ridistribuirlo ai suoi elementi essenziali in modo che sia più facile da leggere? – GreyBeardedGeek