canvas,html2canvas等合成图片不清晰问题

function  pxRa(cxt) {

var backingStore = context.backingStorePixelRatio ||

context.webkitBackingStorePixelRatio ||

context.mozBackingStorePixelRatio ||

context.msBackingStorePixelRatio ||

context.oBackingStorePixelRatio ||

context.backingStorePixelRatio || 1;

return (window.devicePixelRatio || 1) / backingStore;

};

此方法是获取设备与canvas一个适合的比例,具体也不知道怎么表达,剧烈来说,设计稿是640,放在iphone 5、6  ,这个值就是2,  电脑满屏就是1,  6plus  3  等等;

根据这个值去对canvas  进行 方法,缩大放小。

这是img的 图,

下面这是   canvas  画出来的图

是不是看上去很清晰,跟原图没有什么区别区别

代码 合图  如下:

var w = $(".container").width();

var h = $(".container").height();

var canvas = document.createElement("canvas");

var context = canvas.getContext("2d");

var ra=getPixelRatio(context);

console.log(ra);

canvas.width = w * ra;

canvas.height = h * ra;

<!-- canvas.style.width = w + "px"; -->

<!-- canvas.style.height = h + "px"; -->

//然后将画布缩放,将图像放大两倍画到画布上

context.scale(2, 2);

html2canvas(obj).then(function(canvas) {

var copyStr = canvas.toDataURL("image/png", 0.92);

$(‘.complex-img‘).attr(‘src‘, copyStr);

<!-- document.body.appendChild(img); -->

});

时间: 2024-10-07 07:23:57

canvas,html2canvas等合成图片不清晰问题的相关文章

vue 合成图片

目的:将二维码图片和背景图片合成变成一张图片 方法一: 引入依赖 cnpm install qrcanvas --save cnpm install html2canvas --save 具体代码: <!-- 分享图片生成 --> <template> <div class="container"> <div class="share-img"> <img :src="imgUrl" alt=

ImageMagick两个版本对imagick合成图片的一点差异

第一次听说imagick,然后使用,强大到任性,任性到手册上资料也少,合成一张图毕竟还是很容易的. 本地执行完全OK,到了服务器上,没有任何输出,一点小问题,来源于版本. /** * function: 合成图片 * @param string $output_url 图片保存路径 * @param string $img_type 图片保存类型 * @param integral $line_num 每行显示图片数量 * @param array $logo_info 每张待合成图片的信息(要

php imagick 扩展合成图片的两张方法

方法一:compositeimages /** * function: 合成图片 * @param string $output_url 图片保存路径 * @param string $img_type 图片保存类型 * @param integral $line_num 每行显示图片数量 * @param array $logo_info 每张待合成图片的信息(要求所有尺寸统一) * @param array $img_list 待合成的图片绝对路径 * * @return void */ p

canvas代替img渲染图片

移动端用canvas代替img渲染图片,可以提高性能 var oImg = new Image(); oImg.src = url; oImg.onload = function(){ var cvs = $('#cvsIndex')[0].getContext('2d'); cvs.width = this.width; cvs.width = this.height; cvs.drawImage(this,0,0); }

使用canvas将网页内容以图片形式保存到服务器端

经过几天的折磨,终于实现了将网页以图片形式保存到服务器端的效果.在这里要特别感谢园子里白灰尘(http://www.cnblogs.com/Wylfocus/)这位朋友热心.耐心的指导.在网上有许多这样的介绍资料,但对于初学者来说,在测试过程中,有时是缺JS库文件.有时是因输入代码时没注意大小写等原因,总会出现这样或那样的错.为了让和我一样的初学者们都顺利看到程序的效果,现在把我试好的程序上传.开发环境为VS2008.特别要注意的是,IE9以下的版本不支持canvas,即使导入explorerc

Canvas图保存成图片或pdf

Canvas画好的图片虽然可以通过toDataURL()转成二进制流的字符串格式,图片稍大一点就无法发送了,当然如果需求简单的话,可以在页面上加一个image元素,将转成的流直接赋给image的src就可以显示图片了. 但是大部分的时候我们还希望弹出保存框,保存图片到我们自己想要的路径下,或者添加一些统计和分析的信息到pdf中一起保存成一个pdf文件,这就需要在后台处理了,两种方式:后台新建一个Web Browser加载当前的页面,然后将获得到的图片流的信息再发送到前台弹出保存的对话框,后台发送

iOS合成图片

iOS进行合成方式,本人知道的又两种: 1:使用UIImage直接合成 方法:通过上下文将要合成的图片都绘制到该上下文,然后得到合成的图片 - (UIImage*)NTESATCOverlayWith:(UIImage*)overlayImage{ UIGraphicsBeginImageContext(self.size); [self drawAtPoint:CGPointZero]; [overlayImage drawInRect:CGRectMake(0, 0, self.size.w

PHP合成图片、生成文字、居中对齐、画线、矩形、三角形、多边形、图片抗锯齿、不失真 高性能源码示例

function generateImg($source, $text1, $text2, $text3, $font = './msyhbd.ttf') { $date = '' . date ( 'Ymd' ) . '/'; $img = $date . md5 ( $source . $text1 . $text2 . $text3 ) . '.jpg'; if (file_exists ( './' . $img )) { return $img; } $main = imagecrea

SVG转canvas再转png图片

SVG转canvas再转png图片这个无聊的需求是因为客户要用邮件客户端看各种图表,只好搞了搞. 对插件canvg.js做出了小的改动,把canvg()函数第二个参数由文件路径修改为直接传递svg代码,同时避免了警告 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, c