2010-02-18 3 views
1

J'ai recherché sur le Web un logiciel qui convertit par lots l'image à différents angles de rotation à partir d'un fichier source, mais mes recherches ont échoué. Est-ce que ce que je cherche existe? Ce qui serait génial est une application que nous recherchons pour une image source en PNG et un répertoire cible et quand un bouton est pressé, le programme crée chaque "source-" + angle + ".png" comme source-1.png à source-360.png.Un logiciel existe-t-il pour convertir par lots l'image à différents angles de rotation?

Quelqu'un connaît un tel programme?

EDIT

Pour plus de clarté, je veux mettre le marqueur orienté dans la carte Google dans une application web asp.net. Étant donné que google map api ne permet pas de définir l'angle que nous voulons montrer l'image, je vais définir le src de l'étiquette avec le lien à l'angle voulu. Quelque chose de similaire peut être trouvé there avec les avions (lien direct à l'avion au 0 degree, 180 degree, 290 degree). J'ai donc mon fichier png de base 20px par 20px, mais je préfère ne pas créer de 360 ​​images ce qui serait pénible car j'ai 6 types d'images pour le moment et je ne compte pas. Donc, je cherchais un petit soft qui m'aiderait à atteindre cet objectif.

+0

Vous essayez d'écrire un tel programme ou trouver un existant?Si le premier, quelle langue? Si ce dernier, cela devrait être déplacé à SuperUser. – SLaks

+0

vos résultats attendus sont clairs; vous voulez des images 2D 2d. Mais quelle est votre "source"? un modèle 3D? une image panoramique? – kikito

+0

J'ai spécifié que je recherche le web et trouve des choses sans rapport avec ce que je veux réaliser comme panoranam 3dm etc et vous me parlez de ces suject. Sérieusement, je ne comprends pas. J'ai une image 2D que je veux faire pivoter et avoir des fichiers différents pour chacun des 360 degrés de rotation. –

Répondre

5

EDIT: le parent n'a pas correctement exposé le problème. Cela ressemblait à des trucs en 3D au début.

Pour la rotation des images, vous pouvez utiliser ImageMagick

Il est un programme de la console, mais il peut être utilisé très facilement pour faire pivoter les images. Ce:

convert image.png -rotate 45 image-45.png 

va créer une nouvelle image appelée image 45.png qui est le résultat de la rotation Image.png 45 degrés.

Vous pouvez créer un fichier bat ou sh pour automatiser ce processus (vous avez donc un nom propre et les 360 images générées sur une boucle). Cependant, le script est complètement différent selon la plateforme sur laquelle vous êtes.

Veuillez inclure quelle est votre plate-forme (Windows, Linux, Mac) afin que je puisse être plus précis.

+0

provenant d'un fond de traitement d'image, c'est assez compliqué tâche, IMHO.Using google sketchup, d'autre part, a rendu assez facile, si vous comprenez les principes derrière elle – ram

+0

mm J'ai supprimé les jours de référence croquis il y a. Vous devez avoir lu une page en cache. – kikito

0

En fait, vous pouvez créer une petite routine dans Photoshop qui ferait cela. Photoshop vous permet de faire pivoter facilement d'un angle arbitraire. Vous pouvez enregistrer cela comme une action, puis (en supposant que photoshop n'a pas changé trop radicalement dans les dernières versions) enregistrer cette action en tant qu'exécutable que vous pouvez exécuter sur vos images.

Quelque chose à prendre en compte est que la rotation d'une image, son enregistrement, la rotation de cette image modifiée, etc., entraîneront probablement une dégradation croissante de l'image. Idéalement, vous devriez avoir toutes vos rotations basées sur votre image originale. Cela pourrait rendre la solution de photoshop un peu plus difficile ... pas sûr s'il y a un moyen facile de mettre des paramètres (angle, dans votre cas) dans les routines sauvegardées.

Enfin, êtes-vous sûr d'avoir besoin de 360 ​​images? Je suppose que vous pourriez vous en tirer avec peut-être 36 images, et donner à l'utilisateur le plus proche, et à cette taille d'image (vous dites que votre image d'entrée est 20x20), ce serait très bien.

+0

Je n'ai pas de photoshop :-(Vous ne pouvez pas vous le permettre, mais vous avez probablement raison pour les 36 images au lieu de 360. Félicitations pour le fait que vous avez posté une réponse à ma question –

0

Collez le code suivant dans LINQPad:

using(var sourceImage = Image.FromFile(@"C:\Path\To\Image")) { 
    for(int angle = 0; angle < 360; angle += 10) { 
     using(var newImage = new Bitmap(sourceImage.Width, sourceImage.Height)) 
     using(var g = Graphics.FromImage(newImage)) { 
      g.TranslateTransform(sourceImage.Width/2, sourceImage.Height/2); 
      g.RotateTransform(angle); 
      g.DrawImage(sourceImage, -sourceImage.Width/2, -sourceImage.Height/2); 

      newImage.Save(@"C:\Whatever\Rotated Images\" + angle + ".png"); 
     } 
    } 
} 
+0

Ce que vous faites est appelé " Ce qu'il demande est une reconstruction d'image à 360 degrés – ram

+0

@Ram: Êtes-vous sûr? – SLaks

+0

yup: http://en.wikipedia.org/wiki/Affine_transformation Générer un objet 3D à partir d'une ou plusieurs images est assez complique , en considérant la nature en perspective de la caméra (et donc on parle de transformation de perspective) Générer des informations 3D à partir d'une seule image est encore plus difficile qu'avec de multiples images google pour la visualisation à vue unique – ram

Questions connexes