Pregunta

En mi solicitud, el usuario puede crear múltiples objetos (los llamados dibujos), cada uno de los cuales tiene un Surfaceinkcanvas, muy similar con la fotopadilla (la aplicación de pintura de fotos) en los SDKSAMPLES (proporcionada por MS Surface SP1 SDK). Lo que sería la mejor manera de salvar el contenido de los inkcanvas (el objeto de dibujo) dado el hecho de que puede haber decenas o incluso cientos de ellos creados.

Después de una investigación, una opción apareció una opción: convirtiéndola a una imagen, JPG o PNG, pero este método no parece que IMO escalable.

¿Sería posible almacenar los puntos en una base de datos (preferiblemente SQLite)?

El objetivo es poder restaurar los dibujos (contenidos de los inkcanvas) para una mayor edición al cargar.

¿Fue útil?

Solución 2

Ya hay un formato que utiliza Microsoft para guardar los accidentes cerebrovasculares, que es ISF, de pie para el formato serializado de tinta que guarda la colección Strokes en un archivo .is.

Sin embargo, en este ejemplo , cada dibujo se guarda en un separado(pero pequeño tamaño). Isis que se puede cargar fácilmente para una edición adicional o incluso convertirla (exportar) para mapa de bits.

Por lo tanto, un buen método sería salvar cada dibujo en archivos (aunque esto sea un poco más caro, sabio de tiempo, que simplemente almacenarlo en un DB de SQLite) y guardar la ruta de cada uno junto con una identificación en elBase de datos para identificar cada sesión. ¿Alguna sugerencia para optimizar aún más este método desde un punto de vista de escalabilidad?

Otros consejos

Guardar en una imagen no es realmente viable para lo que parece que quiere hacer porque la restauración de líneas de vectores de un mapa de bits es mucho más difícil y potencialmente perjudicial que el vector a la conversión de mapa de bits, además de no ser muy eficiente desde unPerspectiva de densidad de datos.

Puede escribir un código para guardar y restaurar la colección de líneas que se almacenan en la propiedad Strokes.Esto le permitiría reducir el tamaño de sus datos a un mínimo y almacenar fácilmente en una base de datos.Cada golpe tiene algunos datos sobre cómo se ve la línea y un conjunto de puntos que conforman la línea.Es bastante sencillo extraer y restaurar ese datos a otro inkcanvas al recargar.

También podría usar XAMLWRITER / XAMLREADER para simplemente serializar la entrada completa de Inkcanvas a XML, pero deberá poder poner la nueva instancia deserializada en su UI y asegúrese de que no haya complicaciones de nombres o recursos enSu XAML que tiende a causar errores con este método.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top