Ciao Ho la firma in questo modo:Convertire da un DataURL a un'immagine in C# e scrivere un file con il byte
che è codificato ad un DataURL specificamente questa stringa:
"dati: image/png; Base64, iVBORw0KGgoAAAANSUhEUgAAAZAAAADICAYAAADGFbfiAAAYlElEQVR4Xu2dC8w1R1nHQSCIgIKVGLmoiLciFwUs ... (lunga stringa)"
Quello che voglio fare è questo Convertire DataURL a un PNG Ima ge, e salvare l'immagine sul dispositivo, questo è quello che sto facendo finora:
if (newItem.FieldType == FormFieldType.Signature)
{
if (newItem.ItemValue != null)
{
//string completeImageName = Auth.host + "/" + li[i];
string path;
string filename;
string stringName = newItem.ItemValue;
var base64Data = Regex.Match(stringName, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
var binData = Convert.FromBase64String(base64Data);
path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
filename = Path.Combine(path, base64Data);
if (!File.Exists(filename))
{
using (var stream = new MemoryStream(binData))
{
//Code crashing here--------------------------
File.WriteAllBytes(filename, binData);
}
}
newItem.ItemValue = filename;
}
}
App.Database.SaveReportItem(newItem);
Ma il mio codice sta facendo la mia domanda il crash in particolare in questa linea:
File.WriteAllBytes (nome del file, BinData);
L'esempio che sto utilizzando come riferimento (Link) utilizza un PictureBox ma con Xamarin non è possibile utilizzare PictureBox.
Qualsiasi idea?
Che errore ottieni? – SLaks
Perché stai creando un MemoryStream? – SLaks
Arresto anomalo su iOS o Android? E, chiedi a SLaks, perché aprire un flusso e non usarlo? Sei sicuro che il tuo nome file sia impostato su un valore valido? – Jason