修剪透明背景的图像绘制在画布与PHP或javascript

Trim transparent background of an image drawn in Canvas with PHP or javascript

本文关键字:PHP javascript 背景 透明 图像 绘制 修剪      更新时间:2023-09-26

我用HTML5在画布上创建了一个图像,并保存了它。我的代码看起来像这里,在这个例子中:http://www.worldofwebcraft.com/page.php?id=101& t = HTML5_use_php_and_ajax_to_save_canvas_as_png_on_your_server

我的问题是,当我保存我的图像,整个画布它被保存,而不仅仅是它的一部分有一个绘图。所以我得到了一个大的透明背景的图像,在我的图像后面,图像不是50x50,而是100x100。

是否有一种方法来修剪这个透明背景,无论是在JavaScript网站,发送数据到php文件之前,或在php文件,保存图像后?

Thanks in advance

如果你知道你想要的画布的哪一部分。你可以创建一个新的画布元素,并使其大小适合你,然后绘制你想要的图像的一小部分到新的画布上,然后只是做同样的事情,但对于第二个较小的画布。

var smallCanvas = document.createElement('canvas');
smallCanvas.width = somewidth
smallCanvas.height = someheight
var smCtx = smallCanvas.getContext('2d');
smCtxdrawImage(oldCanvas, sx, sy, sw, sh, dx, dy, dw, dh)

取一个oldCanvas,将其剪切到矩形(sx, sy, sw, sh),将其缩放到尺寸(dw, dh),并在坐标(dx, dy)处绘制在smallCanvas上。

编辑:

根据我的评论,这里有一个Jquery插件,做我一直建议。