Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将画布保存到图像中时颜色质量损失_Javascript_Image_Canvas_Color Profile - Fatal编程技术网

在javascript中将画布保存到图像中时颜色质量损失

在javascript中将画布保存到图像中时颜色质量损失,javascript,image,canvas,color-profile,Javascript,Image,Canvas,Color Profile,我正在实现一个图像裁剪工具(使用Jcrop库),它可以上传图像,选择裁剪区域,然后通过单击按钮将图像保存到磁盘 所有的逻辑都是有效的,除了保存到磁盘上的图像失去了它的颜色、色调和一些细节 左边剪了一个,右边是原稿 canvas drowing的我的javascript如下所示: crop_canvas = document.createElement('canvas'); crop_canvas.width = width; crop_canvas.height = height; crop

我正在实现一个图像裁剪工具(使用Jcrop库),它可以上传图像,选择裁剪区域,然后通过单击按钮将图像保存到磁盘

所有的逻辑都是有效的,除了保存到磁盘上的图像失去了它的颜色、色调和一些细节

左边剪了一个,右边是原稿

canvas drowing的我的javascript如下所示:

crop_canvas = document.createElement('canvas');
crop_canvas.width = width;
crop_canvas.height = height;

crop_2d = crop_canvas.getContext('2d');
crop_2d.imageSmoothingEnabled = false;
crop_2d.drawImage(image_target, left, top, parseInt(width), parseInt(height), 0, 0, parseInt(width), parseInt(height));

this.href = crop_canvas.toDataURL('image/png');
我错过了什么?你觉得有什么不对劲吗


谢谢

我相信,您的开发环境是基于Linux的系统吗?我在画布上开发图像编辑应用程序时有过这样的经历。我在Ubuntu 16.04上开发它,我怀疑这是FabricJS本身的问题。但事实并非如此。如果我在Windows或Mac上安装我的系统,它会根据我的需要生成非常好的高质量图像。也许我们都知道Linux是应用程序开发的最佳平台。在这种情况下,我不得不说,我们必须摆脱Linux。因为图像渲染工作在Windows和Mac平台上更好。不过,我对其他Linux发行版不太清楚。我是专门介绍Ubuntu的。

我相信,您的开发环境是基于Linux的系统?我在画布上开发图像编辑应用程序时有过这样的经历。我在Ubuntu 16.04上开发它,我怀疑这是FabricJS本身的问题。但事实并非如此。如果我在Windows或Mac上安装我的系统,它会根据我的需要生成非常好的高质量图像。也许我们都知道Linux是应用程序开发的最佳平台。在这种情况下,我不得不说,我们必须摆脱Linux。因为图像渲染工作在Windows和Mac平台上更好。不过,我对其他Linux发行版不太清楚。我特别要说的是Ubuntu。

最初的图像是png吗?或者您正在将其他东西(如jpeg)转换为png?另外,请记住,
toDataURL
还有第二个可能的参数,可用于控制质量。(默认值为“0.92”)该工具应同时接受jpeg和png。虽然目前我总是保存在png上。这很可能是因为原始文件的数据中包含了颜色配置文件。画布导出的JPEG无法保存它。也许一些EXIF编辑库可以在以后设置它。你们有什么我可以遵循的例子吗?谢谢初始图像是png吗?或者您正在将其他东西(如jpeg)转换为png?另外,请记住,
toDataURL
还有第二个可能的参数,可用于控制质量。(默认值为“0.92”)该工具应同时接受jpeg和png。虽然目前我总是保存在png上。这很可能是因为原始文件的数据中包含了颜色配置文件。画布导出的JPEG无法保存它。也许一些EXIF编辑库可以在以后设置它。你们有什么我可以遵循的例子吗?谢谢有没有否决的理由?有没有否决的理由?