안녕하세요 내가 가지고있는 바이트 파일을 C#으로 이미지에 DataUrl에서 변환 및 쓰기 같은 서명 :는
하십시오 DataUrl에 구체적으로이 문자열을 인코딩
"데이터 : 이미지/PNG, Base64로, iVBORw0KGgoAAAANSUhEUgAAAZAAAADICAYAAADGFbfiAAAYlElEQVR4Xu2dC8w1R1nHQSCIgIKVGLmoiLciFwUs (긴 문자열)"
는 내가 뭘하고 싶은 것은 PNG - 지금이 DataUrl 변환입니다
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);
하지만 내 코드를 내 응용 프로그램이 줄을 구체적으로 충돌하고있다 : GE는, 장치에 이미지를 저장, 이것은 내가 지금까지 뭘 오전입니다 (파일 이름
File.WriteAllBytes, binData);
참조 (Link)로 사용하고있는 샘플은 PictureBox를 사용하고 있지만 Xamarin에서는 pictureBox를 사용하지 않습니다.
어떤 아이디어? @SLaks 내가 MemoryStream을 필요하지 않았다 언급 한 바와 같이
어떤 오류가 발생합니까? – SLaks
MemoryStream을 만드는 이유는 무엇입니까? – SLaks
iOS 또는 Android에서 충돌이 발생합니까? 그리고 물어 보는 SLaks에게 왜 스트림을 열고 그것을 사용하지 않겠 느냐고 물어보십시오. 파일 이름이 유효한 값으로 설정되어 있습니까? – Jason