二维码生成器带图片图片可以生成吗?

如何生成带logo图片的二维码?用二维码生成器吗?还是ps?
如何生成带logo图片的二维码?用二维码生成器吗?还是ps?
&p&&/a&加上&/p&&p&&/a&这两个图我要加成那种logo在二维码中间的,有说发说要ps,我就ps了,肯跌啊,p完之后,用手机扫描竟然读取不了了。吓坏我了、、&/p&&p&接着就p成下面无法解读的图片了,求高手赐教。thanksgiving!!感恩verymuch。&/p&&p&&/a&&/p&
亲测可用,望亲给好评哦,还有,祝你家小店越做越大
相关知识等待您来回答
手机领域专家
& &SOGOU - 京ICP证050897号二维码图片效果图
自定义美化
无线账号:
无线密码:
加密类型:
二维码模板
设置二维码的前、背景色,注意前、背景色的对比度,过于接近将不易识别
前景图片:
背景图片:
前景颜色:
背景颜色:
眼睛外圈:
眼睛内圈:
友情链接:
Copyright & 2013
版权所有 闽ICP备最近的项目中需要生成二维码,找了几个例子综合下,做出了最后的效果,二维码可以生成图片格式(jpg等)或者在web页面上显示,此片文章仅作记录,雷同之处多多,包涵。。。。
注:,大概的流程是读取内嵌的图片,将内容转化成二维码,将图片内嵌到二维码中,出图。
下面是完整代码:
import java.awt.BasicS
import java.awt.C
import java.awt.Graphics2D;
import java.awt.I
import java.awt.S
import java.awt.geom.AffineT
import java.awt.geom.RoundRectangle2D;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedI
import java.io.F
import java.io.IOE
import java.util.HashM
import java.util.M
import javax.imageio.ImageIO;
import com.google.zxing.BarcodeF
import com.google.zxing.EncodeHintT
import com.google.zxing.MultiFormatW
import com.google.zxing.WriterE
import com.mon.BitM
import com.google.zxing.qrcode.decoder.ErrorCorrectionL
public class Zxing {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
// 图片宽度的一般 &
& private static final int IMAGE_WIDTH = 80; &
& private static final int IMAGE_HEIGHT = 80; &
& private static final int IMAGE_HALF_WIDTH = IMAGE_WIDTH / 2; &
& private static final int FRAME_WIDTH = 2; &
& // 二维码写码器 &
& private static MultiFormatWriter mutiWriter = new MultiFormatWriter(); &
public static void main(String[] args) {
//BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 400, 400,hints);
String content=&&;//二维码的内容
BufferedImage image = genBarcode(content, 400, 400, &F:\\amazed.png&);
& & if (!ImageIO.write(image, &jpg&, new File(&F:\\2122.jpg&))) {
& & & throw new IOException(&Could not write an image of format &);
& & & & & & & & & & /**
& & & & & & & & & & & //将上面的代码换成此处,使用流读入到页面即可
OutputStream os = response.getOutputStream();
& if (!ImageIO.write(image, &jpg&,os)) {
&& & & & &&& throw new IOException(&Could not write an image of format &);
&& & & &&& }
& & & & & & & & & & **/
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
private BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x & x++) {
for (int y = 0; y & y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
private static BufferedImage genBarcode(String content, int width, &
& & & & & int height, String srcImagePath) throws WriterException, &
& & & & & IOException { &
& & & // 读取源图像 &
& & & BufferedImage scaleImage = scale(srcImagePath, IMAGE_WIDTH, &
& & & & & & & IMAGE_HEIGHT, true); &
& & & int[][] srcPixels = new int[IMAGE_WIDTH][IMAGE_HEIGHT]; &
& & & for (int i = 0; i & scaleImage.getWidth(); i++) { &
& & & & & for (int j = 0; j & scaleImage.getHeight(); j++) { &
& & & & & & & srcPixels[i][j] = scaleImage.getRGB(i, j); &
& & & & & } &
& & & Map&EncodeHintType, Object& hint = new HashMap&EncodeHintType, Object&(); &
& & & hint.put(EncodeHintType.CHARACTER_SET, &utf-8&); &//内容编码
& & & hint.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);//错误等级
& & & hint.put(EncodeHintType.MARGIN, 1); //设置二维码外边框的空白区域的宽度
& & & // 生成二维码 &
& & & BitMatrix matrix = mutiWriter.encode(content, BarcodeFormat.QR_CODE, &
& & & & & & & width, height, hint); &
& & & // 二维矩阵转为一维像素数组 &
& & & int halfW = matrix.getWidth() / 2; &
& & & int halfH = matrix.getHeight() / 2; &
& & & int[] pixels = new int[width * height]; &
& & & for (int y = 0; y & matrix.getHeight(); y++) { &
& & & & & for (int x = 0; x & matrix.getWidth(); x++) { &
& & & & & & & // 读取图片 &
& & & & & & & if (x & halfW - IMAGE_HALF_WIDTH &
& & & & & & & & & & & && x & halfW + IMAGE_HALF_WIDTH &
& & & & & & & & & & & && y & halfH - IMAGE_HALF_WIDTH &
& & & & & & & & & & & && y & halfH + IMAGE_HALF_WIDTH) { &
& & & & & & & & & pixels[y * width + x] = srcPixels[x - halfW &
& & & & & & & & & & & & & + IMAGE_HALF_WIDTH][y - halfH + IMAGE_HALF_WIDTH]; &
& & & & & & & } &&
& & & & & & & // 在图片四周形成边框 &
& & & & & & & else if ((x & halfW - IMAGE_HALF_WIDTH - FRAME_WIDTH &
& & & & & & & & & & & && x & halfW - IMAGE_HALF_WIDTH + FRAME_WIDTH &
& & & & & & & & & & & && y & halfH - IMAGE_HALF_WIDTH - FRAME_WIDTH && y & halfH &
& & & & & & & & & & & + IMAGE_HALF_WIDTH + FRAME_WIDTH) &
& & & & & & & & & & & || (x & halfW + IMAGE_HALF_WIDTH - FRAME_WIDTH &
& & & & & & & & & & & & & & & && x & halfW + IMAGE_HALF_WIDTH + FRAME_WIDTH &
& & & & & & & & & & & & & & & && y & halfH - IMAGE_HALF_WIDTH - FRAME_WIDTH && y & halfH &
& & & & & & & & & & & & & & & + IMAGE_HALF_WIDTH + FRAME_WIDTH) &
& & & & & & & & & & & || (x & halfW - IMAGE_HALF_WIDTH - FRAME_WIDTH &
& & & & & & & & & & & & & & & && x & halfW + IMAGE_HALF_WIDTH + FRAME_WIDTH &
& & & & & & & & & & & & & & & && y & halfH - IMAGE_HALF_WIDTH - FRAME_WIDTH && y & halfH &
& & & & & & & & & & & & & & & - IMAGE_HALF_WIDTH + FRAME_WIDTH) &
& & & & & & & & & & & || (x & halfW - IMAGE_HALF_WIDTH - FRAME_WIDTH &
& & & & & & & & & & & & & & & && x & halfW + IMAGE_HALF_WIDTH + FRAME_WIDTH &
& & & & & & & & & & & & & & & && y & halfH + IMAGE_HALF_WIDTH - FRAME_WIDTH && y & halfH &
& & & & & & & & & & & & & & & + IMAGE_HALF_WIDTH + FRAME_WIDTH)) { &
& & & & & & & & & pixels[y * width + x] = 0 &
& & & & & & & } else { &
& & & & & & & & & // 此处可以修改二维码的颜色,可以分别制定二维码和背景的颜色; &
& & & & & & & & & pixels[y * width + x] = matrix.get(x, y) ? 0xff000000 &
& & & & & & & & & & & & & : 0 &
& & & & & & & } &
& & & & & } &
& & & BufferedImage image = new BufferedImage(width, height, &
& & & & & & & BufferedImage.TYPE_INT_RGB); &
& & & image.getRaster().setDataElements(0, 0, width, height, pixels); &
& &* 把传入的原始图像按高度和宽度进行缩放,生成符合要求的图标&
& &* @param srcImageFile&
& &* & & & & & &源文件地址&
& &* @param height&
& &* & & & & & &目标高度&
& &* @param width&
& &* & & & & & &目标宽度&
& &* @param hasFiller&
& &* & & & & & &比例不对时是否需要补白:true为补白; false为不补白;&
& &* @throws IOException&
& private static BufferedImage scale(String srcImageFile, int height, &
& & & & & int width, boolean hasFiller) throws IOException { &
& & & double ratio = 0.0; // 缩放比例 &
& & & File file = new File(srcImageFile); &
& & & BufferedImage srcImage = ImageIO.read(file); &
& & & Image destImage = srcImage.getScaledInstance(width, height, &
& & & & & & & BufferedImage.SCALE_SMOOTH); &
& & & // 计算比例 &
& & & if ((srcImage.getHeight() & height) || (srcImage.getWidth() & width)) { &
& & & & & if (srcImage.getHeight() & srcImage.getWidth()) { &
& & & & & & & ratio = (new Integer(height)).doubleValue() &
& & & & & & & & & & & / srcImage.getHeight(); &
& & & & & } else { &
& & & & & & & ratio = (new Integer(width)).doubleValue() &
& & & & & & & & & & & / srcImage.getWidth(); &
& & & & & } &
& & & & & AffineTransformOp op = new AffineTransformOp( &
& & & & & & & & & AffineTransform.getScaleInstance(ratio, ratio), null); &
& & & & & destImage = op.filter(srcImage, null); &
& & & if (hasFiller) {// 补白 &
& & & & & BufferedImage image = new BufferedImage(width, height, &
& & & & & & & & & BufferedImage.TYPE_INT_RGB); &
& & & & & Graphics2D graphic = image.createGraphics(); &
& & & & & graphic.setColor(Color.PINK);&
& & & & & graphic.fillRect(10, 10, width, height); &
& & & & & graphic.drawRect(100, 360, width, height);
& & & & & if (width == destImage.getWidth(null)) {&
& & & & & & & graphic.drawImage(destImage, 0, &
& & & & & & & & & & & (height - destImage.getHeight(null)) / 2, &
& & & & & & & & & & & destImage.getWidth(null), destImage.getHeight(null), &
& & & & & & & & & & & Color.white, null); &
& & & & & & & Shape shape = new RoundRectangle2D.Float(0, (height - destImage.getHeight(null)) / 2, width, width, 20, 20);
& & & & & & & graphic.setStroke(new BasicStroke(5f));
& & & & & & & graphic.draw(shape);
& & & & & }
& & & & & else &{
& & & & & & & graphic.drawImage(destImage, &
& & & & & & & & & & & (width - destImage.getWidth(null)) / 2, 0, &
& & & & & & & & & & & destImage.getWidth(null), destImage.getHeight(null), &
& & & & & & & & & & & Color.white, null);
& & & & & & & Shape shape = new RoundRectangle2D.Float((width - destImage.getWidth(null)) / 2, 0, width, width, 20, 20);
& & & & & & & graphic.setStroke(new BasicStroke(5f));
& & & & & & & graphic.draw(shape);
& & & & & }
& & & & & graphic.dispose(); &
& & & & & destImage = &
& & & return (BufferedImage) destI &
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:7768次
排名:千里之外
原创:15篇
(1)(1)(1)(1)(4)(5)(5)下载Excel模板并填写信息
选择要生成的二维码样式
上传文档制作并完成下载
简约 ● 不简单
二维码批量制作多行业解决方案
1. Excel批量导入,既方便又通用;
2. 适用于嘉宾证、参会证、工作证、会员卡等各类证件中的二维码;
3. 采用短网址技术,让二维码更简洁易识别;
4. 头像、LOGO、彩色二维码,让您与众不同;
5. 为您的每一位员工或同事制作一张个性二维码名片吧!
按照Excel文档模板格式录入信息。完成后保存并记住文档的本地地址,以便上传。
二维码图片
自定义美化
设置二维码的前、背景色,注意前、背景色的对比度,过于接近将不易识别
前景图片:
背景图片:
前景颜色:
背景颜色:
眼睛外圈:
眼睛内圈:
二维码纠错率
(纠错率越高二维码识别率越高)
文档上传须知
1. 请正确填写模版,每次最多生成100个二维码
2.为保证二维码能够正常生成,请上传按模板格式生成的Excel文档。
本工具已成功在线生成张个性二维码
当前进度:
恭喜!二维码制作成功!点击下载文件按钮即可下载
如果您也喜欢我们的,分享吧!
Copyright & 2013
版权所有 闽ICP备即时输入即时生成!输入文字
支持文本、网址和电子邮箱
已输入字数:0/300
即时输入即时生成!输入联系人信息
即时输入即时生成!输入URL网址
即时输入即时生成!输入短信内容
已输入数字:0/300
即时输入即时生成!输入WiFi帐号信息
即时输入即时生成!输入电话号码
即时输入即时生成!输入电邮地址
即时选择即时生成!选择地理位置
建议内容不超过150个汉字,使低配置手机也能扫描到结果。
定位点(外框)
定位点(内点)
(支持jpg、gif、png、bmp格式图片,不超过20M)
<option value="px
<option value="px
<option value="px
网络原创创意二维码生成效果展示,从来高手都来自民间!

我要回帖

更多关于 图片转二维码生成器 的文章

 

随机推荐