我创建了一个使用HTML5画布元素的网络应用程序,允许用户绘制各种形状、颜色、线宽。他们也可以上传一张图片,把它画在画布上,然后在上面画画,作为注释他们的图片的一种方式。
我的挑战是我正在使用。toDataURL()获取画布的全部内容,并将其保存为图像。但据我所知,这只能捕获画布的大小。在较小的设备(手机)上,保存的图像最终尺寸非常小。下面是我为获得画布上的内容所做的:
var image=文档。getElementById(“drawingCanvas”)。toDataURL(“图像/jpeg”,1.0);
Image=image.replace('data: Image/jpeg; Base64,', '').替换('data: Image/png; Base64,', '');
是否有一些方法可以设置我的画布,以便能够保存较大的图像,即使由于设备原因,画布的大小非常小?
当然
文档创建更大的内存画布。createElement
drawImage
将全尺寸图像放到画布上
上下文。缩放画布
重新发出绘图命令
使用导出放大的画布。toDataURL
多亏了
上下文。缩放
不必更改图形命令的任何坐标。
...或者。。。
如果您愿意降级图形以允许出现一些“锯齿”,则可以取消步骤1。通过使用CSS在客户机的img上覆盖画布来实现这一点。这样,客户的图形就已经在原始画布上被隔离了。然后,您的过程简化为:
使用文档创建更大的内存画布。createElement
。确保较大的画布与原始画布具有相同的纵横比
drawImage
将全尺寸图像放到画布上
drawImage
将原来较小的画布转换为较大的画布。您可以使用drawImage的扩展版本同时缩放客户端的图形:context。drawImage(originalCanvas,0,0,originalCanvas.width,originalCanvas.height,0,0,largerCanvas.width,largerCanvas.height)
。是的,drawImage
的图像源可以是另一个画布。;-)
使用导出放大的画布。toDataURL
低密度120 dpi mdpi中密度160 dpi 高密度240 dpi XHDPI:2.0 HDPI:1.5 MDPI:1.0(基线) 这意味着,如果为xhdpi设备生成200x200映像,则应为hdpi生成150x150的相同资源,为mdpi生成100x100,最后为ldpi设备生成75x75映像 这是否意味着如果我以640x360为基线,我必须制作以下4组图像: 1)ldpi-大小480x2
这一定是这里问得最多的问题之一,通常只是针对Android开发者网站。读完留档后,我只想来这里澄清一下。 我理解,为了创建优化的用户体验,每个屏幕大小和密度都必须有不同的可绘制内容。我只想要一个简单的背景图像。因此,我需要为mdpi、hdpi、xhdpi和xxhdpi创建背景图像。经过研究,我发现以下大小的文件夹: 超大型 (XHDPI):640x960 大 (HDPI):480x800 中 (M
我想在我的应用程序中使用背景图像。但是我对不同的屏幕大小感到困惑。我发现了这个问题: Android:支持所有设备的背景图像大小(以像素为单位) 但在回答中他说但Lg G3是和屏幕分辨率: 我需要一个路线图。所有屏幕的图像尺寸应该是多少?(mdpi、hdpi、xhdpi等)
我正在使用一个库从url获取图像并将其作为位图图像保存到缓存中。但是当我检索该图像时,它非常小。如何根据手机屏幕增加位图图像的高度和宽度?这是创建位图的类。
我正在使用android gif绘图库在我的android应用程序中显示gif图像。正如您所知,gif图像应该位于文件夹中,而不是位于文件夹中,因此android无法自动在不同大小之间切换。 我如何处理不同屏幕尺寸的问题?
嘿,伙计们,我只是想问一下,当我们显示一个背景图片在我们的活动,我们把图片放在可绘制的文件夹与子不同的文件夹,像 并且每个文件夹都有一个特定的密度和尺寸,这样它就可以支持多个设备等。 我想问一下,如果我的图片尺寸是3000*3000,我是否需要为每个文件夹修改我的图片 首先,我必须修改它为720*1280的xhdpi,然后把它放在layout_xhdpi文件夹,然后我修改它为hdpi,即400*8