Comment puis-je effectuer de nombreuses opérations aléatoires à un ensemble d'images?
-
27-09-2019 - |
Question
J'ai besoin de manipuler une image telle qu'un sous-rectangle de celui-ci est renversé ou en rotation par rapport au reste de l'image. Voici un exemple:
Ce besoin de manipulation se produire à plusieurs reprises, chaque fois que la production d'une nouvelle image de l'original modifié (plutôt que d'appliquer des modifications successives à une image).
La taille des besoins en sous-rectangle de faire varier systématiquement (peut-être en incréments de 5% de 10% à 75%) et l'emplacement des besoins en sous-rectangle pour faire varier de façon aléatoire.
Enfin, ce besoin de procédure à effectuer sur un grand nombre d'images.
Comment puis-je aller à ce sujet?
Mes options sont PHP, C # ou en batching Gimp. Cela dit, je suis prêt à apprendre quelque chose de nouveau s'il y a une approche particulièrement sensible.
La solution
Id dire aller avec C # et vous écrire un petit utilitaire.
Le Graphics
classe peut avoir toutes les méthodes que vous avez besoin .
Id suggèrent que vous regardez le DrawImage
et les fonctions de RotateTransform
.
Autres conseils
Est-ce quelque chose qui doit être fait ou est-ce programatically un contrat unique?
Si programatically, il * peut * être fait en PHP utilisant la bibliothèque GD, mais sa ne va pas être facile ou rapide, en raison du fait que vous devrez écrire une routine de pixels déplacer manuellement.
Un résumé des « easyness » de votre demande basée sur une approche bibliothèque PHP GD:
- Manipulation se produit plusieurs fois, chaque fois que la production d'une nouvelle image de l'original modifié: facile
- Taille des besoins en sous-rectangle pour faire varier systématiquement, facile
- Localisation des besoins sous-rectangle à très aléatoire, facile
- rotation dans l'image difficulté modérée et lente
- L'exécution de cette sur un grand nombre d'images, facile
Je n'ai pas assez d'expérience en C # de vous donner Gimp ANY réponses définitives; Désolé.
Vous pouvez prendre votre langue préférée, ils seront tous trois être en mesure, le code et l'exécuter?