2009-08-31 17 views
9

Per lo sviluppo del software è spesso necessario disporre di immagini. Ma quando inizio a lavorare su un'immagine ho molto veloce alla fine con decine di versioni, in questo modoCome gestire le immagini durante lo sviluppo del software

  • Avviare un bella immagine su larga scala con, diciamo una foto dalla mia macchina fotografica (x.nef)
  • I effettuare alcune regolazioni sulla correzione dell'esposizione e sul bilanciamento del bianco, convertirlo in x.jpg
  • iniziare ad aggiungere alcune piccole cose copiando in vari pezzi da altre due immagini. (A.jpg, b.jpg visualizzando un'immagine stratificata x.pdn
  • ora mi scala alla dimensione desiderata e salvarlo come x_small.jpg

Ormai ho 6 diversi file immagine galleggianti intorno , e nessuno tranne me conosce il processo dietro di loro

Quindi la domanda è:.? Come si fa a gestire le immagini nel processo di sviluppo

Edit:. Thx per tutto il grande ingresso ho combinato varie domande al mio la mia migliore risposta personale, ma ho accettato la risposta di jiinx0r perché conteneva davvero l'idea mancante per applicare una convenzione di denominazione per il tipo di modifiche apportate.

+0

Non vedo davvero questo come una domanda di programmazione, mi dispiace. Votato per chiudere. Ti suggerisco di chiedere questo su DocType o Super User, secondo le FAQ SO. –

+0

Non sta scrivendo codice, ma è qualcosa che appare nel processo di sviluppo quando si lavora su siti web. Sono stato certamente lì. –

+0

Durante la scrittura di giochi, l'opera d'arte è la parte più importante del tuo codice. –

risposta

4

La denominazione dei file deve essere gestita tramite una convenzione di denominazione.

{name}-{mod type}-{size}-{version}-{create date}.png 
{name}-final.png 

e.g. 
file-white_balance-800x600-v01-20090831.png 
file-white_balance-800x600-v02-20090831.png 
file-final.jpg 

il vero punto è quello di creare un concordato sulla convenzione che la gente vede il valore in seguito (è necessario però semplice/complesso per il vostro gruppo) . Nella mia organizzazione facciamo questo per input/output di file di dati, immagini, script, ecc. (Non è necessariamente la stessa convenzione per tutti, ma seguono qualcosa su cui era d'accordo)

La speranza che aiuta.

+0

È triste, non è vero? Il file system VAX aveva più versioni per file, mainframe poteva farlo. Windows e Linux non possono. Apple lo vende come "nuova funzionalità". Ci sono così tanti formati di file che potrebbero davvero trarre beneficio da un file system che esegue automaticamente versioni di file ... :( –

1

In genere il titolo dell'immagine e la risoluzione sono aggiunti insieme nel nome.

myimage_800_600.png 

questo modo tutte le immagini come sono raggruppati insieme nella visualizzazione delle cartelle e si può facilmente selezionare il formato che si desidera, senza dover vagare quello "medio" si intende.

6

Si potrebbe semplicemente mettere le immagini sotto il controllo del codice sorgente.

Questo gestirà la cronologia e le note della revisione. Se hai davvero bisogno di mantenere tutte le versioni transitorie dell'immagine e non la vuoi nella cartella del tuo progetto, la maggior parte degli alberi di controllo sorgente ha un'area "strumenti" per quel tipo di cose.

EDIT: Se state dopo è tenere traccia delle varie dimensioni (miniature, ecc), vorrei andare con convenzione sulla configurazione e implementare un file uniforme (o directory) Naming System.

Per esempio, probabilmente avrei cartelle separate per le versioni 100px e 500px della stessa immagine. O forse li inserirò nella stessa cartella con una speciale convenzione di denominazione: logo-100.jpg e logo-500.jpg ... In entrambi i casi, probabilmente, è sufficiente prendere una decisione ed essere sicuri di rimanere coerenti per tutto il progetto .

Un ultimo pensiero: ad alcuni piace includere un sacco di metadati nel nome del file. Per me dipende dalla portata della tua operazione e dalle tue esigenze individuali. Personalmente, per impostazione predefinita, un approccio di meno è più: se stai pensando di investire in qualcosa di simile (o di creare uno strumento per farlo per te), assicurati che sia in realtà un guadagno netto di tempo e non solo qualcosa per il tuo OCD con cui giocare!

Come sviluppatori, tendiamo a commettere errori eclatanti in questo settore. So di essere stato colpevole un sacco di volte.

+1

Non penso che funzionerà se hai bisogno della stessa immagine ma di diverse dimensioni in tutta l'applicazione (ad esempio le miniature) –

+0

Bel pensiero, ho aggiunto una modifica per questo nel caso in cui sia quello che cerca. –

3

Mi sforzo di avere solo una singola immagine "sorgente" e poi riverso tutte le modifiche in un breve script Python o in qualche altro codice in modo da poter ricreare gli effetti e/o modificarli in qualsiasi momento.

L'immagine originale viene salvata come PNG o TIFF (per evitare perdite di qualità dovute al salvataggio) e convertita nel tipo finale come ultimo passaggio. Questo è anche il momento in cui eseguo il ridimensionamento e altre operazioni con perdite.

+0

usi python per 'controllo remoto' un programma di manipolazione di immagini? O usi python per manipolare effettivamente le immagini? –

+0

Sto usando PIL (libreria di imaging pyhon) –

2

Abbiamo sviluppato un gioco scaricabile e un Web con alcune centinaia di risorse grafiche, la maggior parte delle quali sono state archiviate come file psd durante lo sviluppo. Avevamo bisogno di versioni jpg e png per la versione di rilascio del gioco e versioni jpg e png di qualità inferiore per la versione web.

Abbiamo controllato gli originali nel controllo del codice sorgente per gestire il controllo delle versioni.

Per rimanere flessibili e in grado di modificare l'originale senza dover reimballare l'immagine due volte dopo ogni aggiornamento, avevamo uno script Perl/ImageMagick che aggiornava automaticamente le immagini compresse.

Il nome del file è rimasto lo stesso, ma le immagini compresse sarebbero state indirizzate a diverse directory, a seconda della versione del gioco per cui ogni immagine era stata confezionata.

1

Sono d'accordo che il controllo della fonte potrebbe essere la soluzione migliore per questo. Tuttavia il controllo del codice sorgente convenzionale non si adatta veramente alle immagini.

Hai guardato http://www.alienbrain.com?

È commerciale ma potrebbe essere qualcosa che potrebbe aiutare. Stavo anche guardando e ho visto qualcosa su Photoshop o Imageready con anche il controllo della versione. Potresti esaminarlo.

+0

Buono a sapersi ci sono strumenti per aiutare con questo, anche se è un modo costoso per l'utilizzo che sto pensando. –

0

ho messo tutti i pezzi insieme dalle varie risposte, per un sistema che si adatta alle mie esigenze:

  1. Immagini andare in controllo del codice sorgente. Questo include immagini o passaggi intermedi.
  2. Se sono necessari più immagini basato un'immagine sorgente, ma con diverse trasformazioni, questo può essere integrato in automatico build (scalatura, compressione, colorazione)
  3. Sulla base di una convenzione di denominazione o file di struttura di cartelle può ottenere classificati in: sorgente (es. foto originale), intermedio (per i vari passaggi di elaborazione), base (un'immagine effettivamente utilizzata nel software o possibile dopo l'elaborazione automatica come nel passaggio 2)
  4. Per le fasi di elaborazione, una convenzione di denominazione deve garantire che il tipo di elaborazione può essere riconosciuto e anche l'ordine dei passaggi. Quindi si sarebbe in grado di passare dall'immagine sorgente attraverso i vari passaggi di elaborazione all'immagine finale.
Problemi correlati