Anche i programmi di disegno hanno bisogno di un database?

2

Stavo pensando a come funzionerebbe un software per vernici. In primo luogo ho pensato che non avrebbe potuto utilizzare alcun database ma quando ho iniziato a pensare alla funzione di annullamento ho capito che potrebbe essere che i dati siano in qualche modo memorizzati nel database. Qualcuno può aiutarmi, raccontandomi come sono conservate le immagini in un normale programma di disegno (diciamo MS-PAINT di Windows).

    
posta Fahad Uddin 12.01.2012 - 13:24
fonte

4 risposte

6

Le immagini non sono solitamente memorizzate in un database (assumendo che si intenda qualcosa come un database SQL) in quanto il formato non è adatto ai dati di immagine.

Le immagini vengono solitamente memorizzate come file in cartelle, proprio come i documenti Word, Excel, OpenOffice.

Quando manipoli i dati, il programma tiene una registrazione delle tue modifiche in memoria (di solito) in modo da poter annullare e ripetere le modifiche. A volte, quando salvi il file, lo stack di annullamento viene cancellato e puoi annullare l'ultima versione sul disco rigido.

Alcuni formati di file consentono di archiviare le informazioni di revisione nel file stesso, ma in genere non è il caso delle immagini. Quello che hai sul disco è l'unica versione del file. Se si desidera conservare una cronologia delle revisioni, è necessario conservare i backup manuali o archiviare il file in un sistema di controllo della versione, a meno che il file system sottostante supporti questo in modo nativo. Un esempio di quest'ultimo è ZFS in OpenSolaris, che consente una funzionalità "guarda indietro nel tempo" con Time Slider - link . Sfortunatamente, Solaris si sta dirigendo in una direzione diversa in questi giorni.

    
risposta data 12.01.2012 - 13:30
fonte
4

Potresti esaminare le implementazioni della funzionalità di annullamento in alcuni programmi open source. Forse il The GIMP o la versione 3.36 o precedente di Paint.NET (quando era ancora open source) potrebbe darti qualche ispirazione. Tuttavia, il comando e Memento i pattern di design sono comunemente citati come buoni modi per implementare la funzionalità di annullamento / ripetizione.

    
risposta data 12.01.2012 - 13:31
fonte
1

CSLA for .NET serializza una copia dell'oggetto su cui desideri salvare la cronologia degli annullamenti e la archivia in una pila di annullamenti ... in modo da poter tornare indietro nella cronologia (potrebbe essere un po 'spiacevole su come memorizzato, ma abbastanza fiducioso nel metodo generale) ...

Nessun database necessario, infatti, è eccessivo avere un database per salvare le informazioni di "annullamento". Trova solo un modo per memorizzare "istanze" dei tuoi dati (informazioni sui colori) ed essere in grado di richiamarli.

    
risposta data 12.01.2012 - 18:07
fonte
0

Se nomino il filesystem come database non relazionale - allora probabilmente - sì, altrimenti - dipende da cosa e come dipingi e come sono organizzati i tuoi dipinti.

    
risposta data 12.01.2012 - 13:26
fonte

Leggi altre domande sui tag