Come faccio a eseguire molte operazioni casuali ad un insieme di immagini?
-
27-09-2019 - |
Domanda
devo manipolare un'immagine tale che un sub-rettangolo di esso è capovolto o ruotato relativamente al resto dell'immagine. Ecco un esempio:
esigenze Questa manipolazione accadere molte volte, ogni volta producendo una nuova immagine modificata dall'originale (invece di applicare modifiche successive ad un'immagine).
La dimensione delle esigenze sub-rettangolo per variare sistematicamente (forse in 5% incrementi dal 10% al 75%) e la posizione delle esigenze sub-rettangolo di variare in modo casuale.
Infine, questa procedura deve essere effettuata su un gran numero di immagini.
Come potrei fare per questo?
Le mie opzioni sono PHP, C #, o dosaggio in Gimp. Detto questo, io sono pronto a imparare qualcosa di nuovo se c'è un approccio particolarmente sensibile.
Soluzione
Id dire andare con C # e scrivere da soli una piccola utility.
La classe Graphics
può avere tutti i metodi di cui avete bisogno .
Id suggeriscono che si guarda il DrawImage
e la funzioni RotateTransform
.
Altri suggerimenti
E 'questo qualcosa che deve essere fatto programatically o è un affare di una volta?
Se programatically, si * può * essere fatto in PHP utilizzando la libreria GD, ma la sua non sarà facile o veloce, a causa del fatto che dovrete scrivere una routine per pixel spostare manualmente.
Una sintesi di "FACILITÁ" della sua richiesta sulla base di un approccio libreria PHP GD:
- La manipolazione avviene molte volte, ogni volta producendo una nuova immagine modificata rispetto all'originale: semplice
- Dimensioni delle esigenze sub-rettangolo di variare in modo sistematico, semplice
- Posizione delle esigenze sub-rettangolo a molto a caso, semplice
- rotazione In-immagine moderata difficoltà e lento
- L'esecuzione di questa su un gran numero di immagini, semplice
Non ho abbastanza esperienza in C # di Gimp per darvi risposte definitive lì; Siamo spiacenti.
Si potrebbe prendere la vostra lingua preferita, saranno tutti in grado 3, il codice ed eseguirlo?