Domanda

Nella mia applicazione L'utente può creare più oggetti (i cosiddetti disegni) ciascuno dei quali ha un SpergurtinkCanvas, molto simile con il fotopad (l'app Photo Paint) negli sdkamples (fornita da MS Surface SP1 SDK). Quale sarebbe il modo migliore per salvare il contenuto dell'Inkcanvas (l'oggetto da disegno) dato il fatto che potrebbero esserci decine o anche centinaia di loro creati.

Dopo alcune ricerche, un'opzione è andata a scatto: convertendolo in un'immagine, JPG o PNG, ma questo metodo non sembra quella IMO scalabile.

Sarebbe possibile memorizzare i punti in un database (preferibilmente SQLite)?

L'obiettivo è essere in grado di ripristinare i disegni (contenuti dell'Inkcanvas) per ulteriori modifiche al caricamento.

È stato utile?

Soluzione 2

C'è già un formato che Microsoft utilizza per salvare i tratti in, che è ISF - Standing per il formato serializzato dell'inchiostro che salva la raccolta di tratti in un file .isf.

comunque in questo ESEMBRE Ogni disegno viene salvato in un separato(ma file di piccole dimensioni) .isf che può essere facilmente caricato per ulteriori modificarsi o addirittura convertire (esportazione) in bitmap.

Quindi un buon metodo sarebbe quello di salvare ogni disegno in file (anche se questo è un po 'più costoso, tempo-saggio, che semplicemente conservarlo in un DB di SQLite) e salvare il percorso di ciascuno con un ID nelDatabase per identificare ogni sessione. Qualsiasi suggerimento per ottimizzare ulteriormente questo metodo da un punto di vista della scalabilità?

Altri suggerimenti

Il risparmio di un'immagine non è davvero valido per quello che sembra che tu voglia fare perché il ripristino delle linee vettoriali da una bitmap è molto più difficile e potenzialmente lidimosa del vettore alla conversione bitmap, oltre a non essere molto efficiente da aProspettiva della densità dei dati

È possibile scrivere un codice per salvare e ripristinare la raccolta di linee memorizzate nella proprietà Strokes.Ciò ti consentirebbe di ridurre le dimensioni dei dati fino al minimo e memorizzare facilmente in un database.Ogni ictus ha alcuni dati su come appare la linea e un insieme di punti che compongono la linea.È abbastanza semplice da estrarre e ripristinare i dati su un altro inkcanvas durante il ricaricamento.

Potresti anche essere in grado di utilizzare XamLwriter / XamlReader per serializzare solo l'intero inkcanvas in XML, ma dovresti essere in grado di mettere la nuova istanza deserializzata nella tua UI e assicurati che non ci siano complicazioni di denominazione o risorsa inIl tuo XAML che tende a causare errori con questo metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top