http://i.imgur.com/foT9u.jpgJ'ai besoin d'aide rognage d'une image en PHP (GD)
En utilisant cette image comme un exemple, voici ce que je dois faire:
- Crop le carré bleu pour avoir le même rapport proportionnel De ce fait, je devrais alors pouvoir redimensionner le carré bleu pour l'insérer dans le carré noir sans l'étirer - il conservera ses proportions.
Remarque: Le carré bleu doit être recadré «par le centre». Le centre d'origine doit rester le centre après la récolte (il ne peut pas être recadré en haut à gauche, par exemple).
Voici ce que je pense qui doit être fait (en utilisant le, paysage, carré bleu comme l'exemple):
- Calculez la différence entre les carrés noirs largeur et la hauteur
- Figure la différence entre les carrés bleus largeur et hauteur
- Cela devrait me dire combien de recadrer le carré bleu par et avec combien d'un «décalage supérieur»
- Une fois qu'il est recadré pour s'adapter aux proportions des carrés noirs, il peut alors être redimensionné
J'ai été déconner avec le code similaire à:
if (BLACK_WIDTH > BLACK_HEIGHT)
{
$diffHeight = BLACK_WIDTH - BLACK_HEIGHT;
$newHeight = $blue_Height - $blue_Height;
echo $newHeight;
}
Et en utilisant Photoshop pour essayer d'obtenir une idée de la façon dont cela devrait être fait, mais il continue à échouer>. <
Comment dois-je procéder? Comment est-ce que je peux déterminer combien de recadrer par (selon que le carré bleu est paysage ou portrait)? Comment puis-je obtenir le décalage pour conserver le centre des carrés bleus?
EDIT: Typo
Je ne peux pas supprimer ma propre réponse. –
N'y a-t-il pas de meilleures options que de faire une boucle? Que faire si je commence avec une grande image que je veux réduire à quelque chose de beaucoup plus petit. Boucler pour réduire l'image de 1 pixel à la fois pourrait causer des problèmes de vitesse: / – dave