При использовании VS2022, C#, Blazor и jquery код сначала загружает «C:\Images\defaultImage.png» в область холста на странице:
await JS.InvokeVoidAsync("loadImageOnCanvas", "CanvasId", "/scripts/defaultImage.png");
Это изображение затем сохраняется в базе данных. В другой день пользователь извлекает изображение из базы данных и загружает его на холст. На этом этапе, после загрузки изображения из базы данных, пользователю необходимо знать, является ли это изображение тем же, что и defaultImage.png (который хранится в драйвере C:), или файл defaultImage.png был изменен. изменено/заменено.
ПРИМЕЧАНИЕ. Это простое черно-белое изображение размером всего 27 КБ и размером 241 x 154 пикселя.
Чтобы проверить это, я используйте код ниже, но при сравнении
они никогда не становятся равными. Тот, что с холста, всегда немного больше по размеру, около 1к.
// Retrieve the image that was loaded on canvas
var canvasImage = await JS.InvokeAsync("captureCanvasImage", "CanvasId");
canvasImage = canvasImage.Replace("data:image/png;base64,", String.Empty);
// byte[27980]
byte[] imageOnCanvas_Bytes = Convert.FromBase64String(canvasImage);
// byte[26978]
byte[] defaultImage_Bytes = File.ReadAllBytes("wwwroot/scripts/defaultImage.png");
// Compare as string returns FALSE
var result = canvasImage == Convert.ToBase64String(defaultImage_Bytes);
// Compare byte arrays returns FALSE
var result2 = imageOnCanvas_Bytes.SequenceEqual(defaultImage_Bytes);
Подробнее здесь: https://stackoverflow.com/questions/788 ... p-and-jque