html-to-image ios图片绘制不出来

在使用html-to-image 的时候,安卓机没有任何问题,ios,使用toSvg可以在页面上展示,但是,在用canvas绘制一次,就渲染不出来。最后去看了插件的github有人说用这个方法可以实现
于是我去试了一下这个方法

htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,})
    .then(()=>{
            htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,})
    .then(()=>{
            htmlToImage.toJpeg(document.getElementById('content'), {pixelRatio:1,quality:1,
         }).then((url)=>{
            imgUrl.value = url;
           
          })
        })
      })

经过多次调用,ios的图片出来了!!!!。
据说这个好像是因为ios的浏览器加载图片有延迟导致的。

如果还是不行可以试试这个方法,设置最后图片生成出来的base64大小。
在这里插入图片描述
这里ios还有一个问题,如果生成的dom图片里面引入字体包,也可能生成不出来,好像是因为会先加载项目里所有的字体包,然后再去生成图片,以至于最后生成出来的只有字体,没有图片。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
如果不想使用CoreImage框架,也可以使用ZBarSDK来获取图片中二维码的定位。 1. 导入ZBarSDK: 在项目中导入ZBarSDK,并在需要使用的文件中引入头文件: ``` #import "ZBarSDK.h" ``` 2. 加载图片: ``` UIImage *image = [UIImage imageNamed:@"image.png"]; CGImageRef imageRef = image.CGImage; ``` 3. 创建ZBarImageScanner并设置识别类型: ``` ZBarImageScanner *scanner = [[ZBarImageScanner alloc] init]; [scanner setSymbology: ZBAR_QRCODE config: ZBAR_CFG_ENABLE to: 1]; ``` 4. 将图片转换为ZBarImage对象: ``` ZBarImage *zbarImage = [[ZBarImage alloc] initWithCGImage:imageRef]; ``` 5. 扫描二维码: ``` [scanner scanImage:zbarImage]; ``` 6. 遍历扫描结果,获取二维码定位: ``` for (ZBarSymbol *symbol in scanner.results) { NSArray *corners = symbol.bounds; // 获取定位四个角的坐标 // 在图像上绘制定位 UIGraphicsBeginImageContext(imageSize); CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetStrokeColorWithColor(context, [UIColor greenColor].CGColor); CGContextSetLineWidth(context, 2.0); CGContextMoveToPoint(context, corners[0].x, corners[0].y); CGContextAddLineToPoint(context, corners[1].x, corners[1].y); CGContextAddLineToPoint(context, corners[2].x, corners[2].y); CGContextAddLineToPoint(context, corners[3].x, corners[3].y); CGContextAddLineToPoint(context, corners[0].x, corners[0].y); CGContextStrokePath(context); UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext(); UIGraphicsEndImageContext(); } ``` 这样就可以在原图上绘制出二维码的定位了。需要注意的是,ZBarSDK是第三方框架,需要先在官网注册并获取授权才能使用。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值