怎么生成中间有图像的二维码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么生成中间有图像的二维码相关的知识,希望对你有一定的参考价值。

这个很容易,推荐使用“码上游”这款二维码的生成工具就可以做到。

1.登录到操作后台。

2.点击添加二维码内容。

3.编辑二维码里的内容。

4.编辑好内容后保存即可生成二维码,在二维码样式处可以选择中间的图片,可以上传自己准备好的图片。

希望可以帮助到你!

参考技术A 带图像二维码自动生成https://www.toolsou.com/app/qrcode,可以上传你的LOGO在线制作。

Swift中自动生成中间带小头像的二维码

//MARK: -传进去字符串,生成二维码图片

    private func creatQRCodeImage(text: String, sizeH:CGFloat) -> UIImage{

        //text是二维码要带入的信息,sizeH是二维码的高度

        //创建滤镜

        let filter = CIFilter(name: "CIQRCodeGenerator")!

        //还原滤镜的默认属性

        filter.setDefaults()

        //设置需要生成二维码的数据

        filter.setValue(text.dataUsingEncoding(NSUTF8StringEncoding), forKey: "inputMessage")

        //从滤镜中取出生成的图片

        let ciImage = filter.outputImage

        //这个清晰度不好

        //let bgImage = UIImage(CIImage: ciImage!)

        //这个清晰度好

        let bgImage = createNonInterpolatedUIImageFormCIImage(ciImage!, size: sizeH)

        //创建一个头像

        let icon = UIImage(named: "icon")

        //合成图片(把二维码和头像合并)

        let newImage = creatImage(bgImage, iconImage: icon!)

        //返回生成好的二维码

        return newImage

    }

    //MARK: - 根据背景图片和头像合成头像二维码, 即是中间带头像的二维码

    private func creatImage(bgImage: UIImage, iconImage:UIImage) -> UIImage{

        //开启图片上下文

        UIGraphicsBeginImageContext(bgImage.size)

        //绘制背景图片

        bgImage.drawInRect(CGRect(origin: CGPointZero, size: bgImage.size))

        //绘制头像

        let width: CGFloat = 50

        let height: CGFloat = width

        let x = (bgImage.size.width - width) * 0.5

        let y = (bgImage.size.height - height) * 0.5

        iconImage.drawInRect(CGRect(x: x, y: y, width: width, height: height))

        //取出绘制好的图片

        let newImage = UIGraphicsGetImageFromCurrentImageContext()

        //关闭上下文

        UIGraphicsEndImageContext()

        //返回合成好的图片

        return newImage

    }

    

     //MARK: - 根据CIImage生成指定大小的高清UIImage

    private func createNonInterpolatedUIImageFormCIImage(image: CIImage, size: CGFloat) -> UIImage {

        let extent: CGRect = CGRectIntegral(image.extent)

        let scale: CGFloat = min(size/CGRectGetWidth(extent), size/CGRectGetHeight(extent))

        

        let width = CGRectGetWidth(extent) * scale

        let height = CGRectGetHeight(extent) * scale

        let cs: CGColorSpaceRef = CGColorSpaceCreateDeviceGray()!

        let bitmapRef = CGBitmapContextCreate(nil, Int(width), Int(height), 8, 0, cs, 0)!

        

        let context = CIContext(options: nil)

        let bitmapImage: CGImageRef = context.createCGImage(image, fromRect: extent)

        

        CGContextSetInterpolationQuality(bitmapRef,  CGInterpolationQuality.None)

        CGContextScaleCTM(bitmapRef, scale, scale);

        CGContextDrawImage(bitmapRef, extent, bitmapImage);

        let scaledImage: CGImageRef = CGBitmapContextCreateImage(bitmapRef)!

        return UIImage(CGImage: scaledImage)

    }

 

以上是关于怎么生成中间有图像的二维码的主要内容,如果未能解决你的问题,请参考以下文章

你好,请问中间带图片的二维码如何生成,谢谢

如何生成带中间LOGO的二维码?

请问大家,有的人做出来的二维码中间有一个字或者一副图片,这是怎么弄出来的哦

为啥我用二维码生成器,生成的二维码扫描不出来?

如何在二维码里添加logo

怎么根据信息生成二维码 jquery 动态