Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTML canvas as base64 to PNG giving CRC error #620

Open
pingumen96 opened this issue Jun 26, 2023 · 3 comments
Open

HTML canvas as base64 to PNG giving CRC error #620

pingumen96 opened this issue Jun 26, 2023 · 3 comments

Comments

@pingumen96
Copy link

pingumen96 commented Jun 26, 2023

Hello everyone,

I've been encountering issues when trying to convert a base64 string to a PNG image using Imagick. I get a CRC error, despite the fact that the base64 string appears to be correct - it can be viewed using various online tools.

Here is the code that triggers the error:

$drawing = new \Imagick();
if (substr($degradation['drawings'][$i], -1) === '=') {
     $degradation['drawings'][$i] = substr($degradation['drawings'][$i], 0, -1);
}
$correctedBase64 = str_replace('data:image/png;base64,', '', $degradation['drawings'][$i]);
$correctedBase64 = str_replace(' ', '+', $correctedBase64); // it happens even removing this line
$base64Decoded = base64_decode($correctedBase64);
$drawing->readImageBlob($base64Decoded);

For reference, the base64 string is:

Details

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

As a workaround, I was able to store the image correctly by skipping Imagick and writing the base64-decoded data directly to a file:

if (substr($degradation['drawings'][$i], -1) === '=') {
    $degradation['drawings'][$i] = substr($degradation['drawings'][$i], 0, -1);
}

$base64Decoded = base64_decode(str_replace('data:image/png;base64,', '', $degradation['drawings'][$i]));
$drawingFilename = Uuid::uuid() . '.png';

$path = Storage::disk($diskName)->path('degradation/drawing_' . $drawingFilename);

I'm running PHP version 8.1.9 and Imagick version 1808 on Windows.

Any help would be greatly appreciated. Thank you!

@Danack
Copy link
Collaborator

Danack commented Jun 26, 2023

Amusingly, I encountered the same phenomenon in a different project recently: laminas/laminas-diactoros#165

I can't tell where the problem is occurring for you, but presumably it's the same type of problem.

Someone suggested that I use base64url instead, but I've just done what you've done and put a bodge in.

@pingumen96
Copy link
Author

Hello Danack, I checked and the base64 string was valid even without replacing the spaces with plus signs, so I think that's not the problem. However, the solution seems to be to write the file, and that's it but there is a bug somewhere in the library (or in ImageMagick) for sure.

@Danack
Copy link
Collaborator

Danack commented Jul 3, 2023

Can you make a reproducible code example then if you think I should investigate it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants