gpt4 book ai didi

javascript - HTML 5 canvas toDataURL 更改了原始数据

转载 作者:行者123 更新时间:2023-11-28 04:03:34 26 4
gpt4 key购买 nike

我只使用canvas来绘制图像,但是即使canvas没有改变,toDataURL()值也与原始数据不同。代码如下:

<html>
<head>
<title>For test</title>
<script type="text/javascript">

window.onload = function() {
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
var img = document.getElementById("scream");
img.crossOrigin = 'Anonymous';
ctx.drawImage(img, 0, 0);

console.log(c.toDataURL().length);
console.log("data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAIAAAC43dc6AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABPSURBVGhD7dOhAQAgDMAw/n96GCyqZiK5oKZndtPX6Gv0NfoafY2+Rl+jr9HXrO8D/t4nW+lr9DX6Gn2NvkZfo6/R1+hr9DX6Gn3N7r6ZCxmTdxPs4RLCAAAAAElFTkSuQmCC".length);

}

</script>
</head>
<body>

<p>Image to use:</p>
<img id="scream" src="data:img/jpg;base64,iVBORw0KGgoAAAANSUhEUgAAADUAAAAzCAIAAAC43dc6AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAABPSURBVGhD7dOhAQAgDMAw/n96GCyqZiK5oKZndtPX6Gv0NfoafY2+Rl+jr9HXrO8D/t4nW+lr9DX6Gn2NvkZfo6/R1+hr9DX6Gn3N7r6ZCxmTdxPs4RLCAAAAAElFTkSuQmCC" /><p>
<p>Canvas:</p>
<canvas id="myCanvas" width="53" height="51"></canvas>
</body>

最佳答案

简单:您正在重新应用 jpeg 压缩,这是一个有损过程。除非您的原始图像来自同一台计算机,否则它们实际上不可能完全匹配。即使您使用完全相同的算法,您也必须匹配品质因数才能获得重新编码匹配。我什至没有看到代码中指定的质量(如 argument to toDataURL() )。

即使您使用所有相同的设置,这些编码器中也有一点巫术,并且设备分辨率更改、缩放、字体更新或陷入困境的 CPU 都可能(可能)影响输出,因为 Canvas 布局的动态特性。像 Photoshop 这样的应用程序比浏览器更具可重复性。

关于javascript - HTML 5 canvas toDataURL 更改了原始数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46885164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com