math/algorithme d'Ajustement de l'image à l'écran de conserver le ratio d'aspect
J'ai besoin d'aide en maths /algorithme de prendre une image de taille connue et ajustement à l'une des deux dimensions de l'écran:
720 x 480 1280 x 1024.
Les dimensions de l'image sont à venir à partir d'un fichier XML, mais ces dimensions sont les dimensions web, j'ai aussi une sélection des images à partir du XML qui peut être plus élevé ou plus faible résolution que le web dimensions.
Ce que je veux, c'est d'utiliser le ratio d'aspect de la web dimensions pour afficher l'image haute résolution, si elle est disponible, sur un HD (1280x720) de l'écran, ou, si l'utilisateur est sur un écran SD (720 x 480) affichage de l'image sur l'écran.
D'autres choses qu'il serait utile pour cela, mais de moindre priorité, serait, si je sais que la résolution de l'image est plus petite dans les deux dimensions qu'une carte SD de l'écran (dans ce cas, tout ce que je sais, c'est le web dimension, et la dimension horizontale de l'image d'un fichier), pour l'afficher en taille réelle sur l'écran.
Espère que c'est assez clair.
Merci!
- Pourriez-vous publier des données de l'échantillon et que voudriez-vous le résultat?
- Ok, eh bien, en voici quelques-réel des données de l'échantillon: web dimension= width="340" height="517" où il y a une image que la dimension x est en fait 1280. Je veux redimensionner ce donc que c'est la hauteur n'est pas supérieur à 720, et redimensionner la largeur en proportion, de sorte que l'image ne sont pas déformés, afin que je puisse l'afficher sur un écran HD, ou si l'utilisateur est sur un écran SD, ce serait la dimension que je voudrais mettre à l'échelle. La sortie serait targetrect={x,y,xx,yy)
Vous devez vous connecter pour publier un commentaire.
Générique comme:
Les données de l'Image: (wi hi) et de définir ri = wi /hi
La résolution de l'écran: (ws hs) et de définir rs = ws /hs
L'échelle de l'image dimensions:
Ainsi, par exemple:
Comme vous pouvez le voir clairement les échelles de la taille de l'écran, car la hauteur est celle de l'écran, mais clairement garde ratio d'aspect depuis
14.3/10 ~ 10/7
Mise à JOUR
Centre de l'image comme suit:
appel (wnouveau hnouveau), les nouvelles dimensions.
i
était censé signifier image, ets
écran.>
, j'ai été capable de me "remplir" au lieu de "boîte aux lettres." Est-ce un artefact de vraiment mauvais essais, ou est-ce correct?Ici, il est en simple C.
Vous souhaitez mettre à l'échelle les deux coordonnées par le retour de facteur d'échelle.
Ratio d'Aspect de correction avec des bandes noires ou adapter à l'écran
J'ai écrit une méthode récemment pour traiter de ce problème exact dans iOS. Je suis en utilisant les modes Propres de la matrice de la bibliothèque pour faire de mise à l'échelle, mais le principe (facteur d'échelle) est la même sans les matrices.
Je comprends la accepté de répondre et il fonctionne, mais j'ai toujours trouvé la méthode suivante pour être plus simple et succincte pour le "meilleur ajustement":