23 messaggi dal 27 novembre 2015
Salve,
io ho una string base30 salvata nel database.
Come faccio a convertirla in immagine?
Ho già ricercato su Google, ma senza capire come fare... protreste aiutarmi voi?
Grazie :)
98 messaggi dal 13 febbraio 2016
Buon pomeriggio Melinda,
vedi questo thread se può esserti utile.
E' presente un metodo scritto sia in C# che in vb.

Ciao
23 messaggi dal 27 novembre 2015
Grazie,
con il seguente blocco di codice:
Base30Converter conv = new Base30Converter();
int[][][] arrBase30Data = conv.Base30ToNative(Rapportino.FIRMA);

string strSVG = jSignature.Tools.SVGConverter.ToSVG(arrBase30Data);

var s = new MemoryStream(Encoding.ASCII.GetBytes(strSVG));
SvgDocument mySVG = SvgDocument.Open(s, null);

var tempStream = new System.IO.MemoryStream();
mySVG.Draw().Save(tempStream, System.Drawing.Imaging.ImageFormat.Png);
System.Drawing.Image img = System.Drawing.Image.FromStream(tempStream);
mi da questo errore il compiler di visual studio:

The type arguments for method 'SvgDocument.Open<T>(string, Dictionary<string, string>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

Cosa vuol dire? :)
98 messaggi dal 13 febbraio 2016
Probabilmente starai utilizzando una libreria diversa da quella utilizzata nell'esempio.
Ho fatto una prova con questa su svg.codeplex.com/ e funziona correttamente.

Ciao
23 messaggi dal 27 novembre 2015
Ciao, grazie ancora.
Ho fatto una prova con questo codice:

Base30Converter conv = new Base30Converter();
                int[][][] arrBase30Data = conv.Base30ToNative(Rapportino.FIRMA);

                string strSVG = jSignature.Tools.SVGConverter.ToSVG(arrBase30Data);

                var s = new MemoryStream(Encoding.ASCII.GetBytes(strSVG));
                SvgDocument mySVG = SvgDocument.Open(s, null);

                var tempStream = new System.IO.MemoryStream();
                mySVG.Draw().Save(tempStream, System.Drawing.Imaging.ImageFormat.Png);
                System.Drawing.Image img = System.Drawing.Image.FromStream(tempStream);
                image = Image.GetInstance(img, BaseColor.WHITE);

Funziona, ma la firma che mi stampa non corrisponde a quella salvata.
Come mai?
Modificato da Melinda il 26 febbraio 2016 09.10 -
23 messaggi dal 27 novembre 2015
Non mi aiuta nessuno? :(
98 messaggi dal 13 febbraio 2016
Strano che non corrisponde,
hai fatto diverse prove?
Prova con qualche altra libreria.
23 messaggi dal 27 novembre 2015
Io salvo la stringa base30 così:

var sig_data = $("#signature").jSignature("getData", "base30");
    var img = sig_data[1];


e la converto in immagine così:

Base30Converter conv = new Base30Converter();
                int[][][] arrBase30Data = conv.Base30ToNative(string.Format("{0}", Rapportino.FIRMA.ToString(CultureInfo.InvariantCulture)));

                string strSVG = jSignature.Tools.SVGConverter.ToSVG(arrBase30Data);

                var s = new MemoryStream(Encoding.ASCII.GetBytes(strSVG));
               /* using (var fileStream = File.Create("d:\\Temp\\s.png"))
                {
                    s.Seek(0, SeekOrigin.Begin);
                    s.CopyTo(fileStream);
                }*/
                SvgDocument mySVG = SvgDocument.Open(s, null);

                var tempStream = new System.IO.MemoryStream();
                mySVG.Draw().Save(tempStream, System.Drawing.Imaging.ImageFormat.Png);
                System.Drawing.Image img = System.Drawing.Image.FromStream(tempStream);
                image = Image.GetInstance(img, BaseColor.WHITE);


Non capisco nemmeno io dove sia l'errore...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.