При использовании VS2022, C#, Blazor и jquery код сначала загружает «C:\Images\defaultImage.png» в область холста на странице:
await JS.InvokeVoidAsync("loadImageOnCanvas", "CanvasId", "/scripts/defaultImage.png");
Затем в определенный момент мне нужно знать, остается ли изображение на холсте таким же, как первое загруженное (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