怎么在生成的二维码上插入上传图片生成二维码而不会导致扫描页面失…

怎样实现扫描一个二维码直接出来一组图片?_百度知道
怎样实现扫描一个二维码直接出来一组图片?
怎样实现一个二维码直接扫描出来一组图片的页面。即是让参观者扫描我产品上的二维码,直接转到介绍产品的几张图片格式的说明,让他一张一张翻看,急需,赏金100'求助大婶们!
我有更好的答案
1、做一个翻页浏览图片的页面,比如 view.html;2、将这个页面连同图片放到你的网站或者空间,记下页面地址
3、然后将这个页面地址生成二维码,很多免费生成的,输入记下的地址就可以了.
你这个方法应该可行,能再多给点详细建议么:1、你说的页面是指网页的意思?
2、用什么软件制作“翻页浏览图片的”页面?
3、这个页面连同图片放到网上空间,这个网上空间不能是qq空间之类的吧,要注册域名申请空间的话,你能否介绍个不错的网站?免费的哈
1、页面就是网页的意思;2、从记事本到专业的网站制作工具,很多,比如 Dreamwaver之类,甚至WORD都可以制作HTML页面。直接用记事本写HTML代码的例子:&‍&html&&meta&charset=&gb2312&&&head&&body&&div&align=&center&&&a&href=&view00.html&&上一张&/a&&|&&a&href=&view01.html&&下一张&/a&&//div&&div&align=center&&img&src=&yourpic00.jpg&/&&/div&&/body&&/html&注意这里的 view00.html 是上一张图片的网页名称,view01.html 是下一张图片的网页名称,yourpic00.jpg 是当前网页要显示的图片名称。&如上,为每一张图片制作一张网页就可以了。在每一个网页中设置好图片名称、上一张图片的网页名称,下一张图片的网页名称。&这是一个最简单直接的实现方法。&缺点是需要为每一张图片制作一个网页,有点麻烦;有点是:没有难度,不需要专门的工具软件。
采纳率:94%
你需要网站 你网站图片的链接
然后把链接生成二维码
怎么把文档生成网址
1条折叠回答
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。Android:使用ZXing生成二维码(支持添加Logo图案)
ZXing是谷歌的一个开源库,可以用来生成二维码、扫描二维码。本文所介绍的是第一部分。
首先上效果图:
ZXing相关各种文件官方下载地址:https://github.com/zxing/zxing/releases
或者在这里下载(只有本项目所用的jar包,版本号:3.2.0):链接: https://pan.baidu.com/s/1hq3s5EW 密码: mvg7
1.生成二维码的工具类
* 二维码生成工具类
public class QRCodeUtil {
* 生成二维码Bitmap
* @param content
* @param widthPix
* @param heightPix 图片高度
* @param logoBm
二维码中心的Logo图标(可以为null)
* @param filePath
用于存储二维码图片的文件路径
* @return 生成二维码及保存文件是否成功
public static boolean createQRImage(String content, int widthPix, int heightPix, Bitmap logoBm, String filePath) {
if (content == null || &&.equals(content)) {
//配置参数
Map hints = new HashMap&&();
hints.put(EncodeHintType.CHARACTER_SET, &utf-8&);
//容错级别
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
//设置空白边距的宽度
hints.put(EncodeHintType.MARGIN, 2); //default is 4
// 图像数据转换,使用了矩阵转换
BitMatrix bitMatrix = new QRCodeWriter().encode(content, BarcodeFormat.QR_CODE, widthPix, heightPix, hints);
int[] pixels = new int[widthPix * heightPix];
// 下面这里按照二维码的算法,逐个生成二维码的图片,
// 两个for循环是图片横列扫描的结果
for (int y = 0; y & heightP y++) {
for (int x = 0; x & widthP x++) {
if (bitMatrix.get(x, y)) {
pixels[y * widthPix + x] = 0xff000000;
pixels[y * widthPix + x] = 0
// 生成二维码图片的格式,使用ARGB_8888
Bitmap bitmap = Bitmap.createBitmap(widthPix, heightPix, Bitmap.Config.ARGB_8888);
bitmap.setPixels(pixels, 0, widthPix, 0, 0, widthPix, heightPix);
if (logoBm != null) {
bitmap = addLogo(bitmap, logoBm);
//必须使用compress方法将bitmap保存到文件中再进行读取。直接返回的bitmap是没有任何压缩的,内存消耗巨大!
return bitmap != null && bitmap.compress(Bitmap.CompressFormat.JPEG, 100, new FileOutputStream(filePath));
} catch (WriterException | IOException e) {
e.printStackTrace();
* 在二维码中间添加Logo图案
private static Bitmap addLogo(Bitmap src, Bitmap logo) {
if (src == null) {
if (logo == null) {
//获取图片的宽高
int srcWidth = src.getWidth();
int srcHeight = src.getHeight();
int logoWidth = logo.getWidth();
int logoHeight = logo.getHeight();
if (srcWidth == 0 || srcHeight == 0) {
if (logoWidth == 0 || logoHeight == 0) {
//logo大小为二维码整体大小的1/5
float scaleFactor = srcWidth * 1.0f / 5 / logoW
Bitmap bitmap = Bitmap.createBitmap(srcWidth, srcHeight, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
canvas.drawBitmap(src, 0, 0, null);
canvas.scale(scaleFactor, scaleFactor, srcWidth / 2, srcHeight / 2);
canvas.drawBitmap(logo, (srcWidth - logoWidth) / 2, (srcHeight - logoHeight) / 2, null);
canvas.save(Canvas.ALL_SAVE_FLAG);
canvas.restore();
} catch (Exception e) {
e.getStackTrace();
2.在Activity中的使用:
* 二维码生成
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final EditText contentET = (EditText) findViewById(R.id.create_qr_content);
//显示二维码图片
final ImageView imageView = (ImageView) findViewById(R.id.create_qr_iv);
//是否添加Logo
final CheckBox addLogoCB = (CheckBox) findViewById(R.id.create_qr_addLogo);
Button createQrBtn = (Button) findViewById(R.id.create_qr_btn);
createQrBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
final String filePath = getFileRoot(MainActivity.this) + File.separator
+ &qr_& + System.currentTimeMillis() + &.jpg&;
//二维码图片较大时,生成图片、保存文件的时间可能较长,因此放在新线程中
new Thread(new Runnable() {
public void run() {
boolean success = QRCodeUtil.createQRImage(contentET.getText().toString().trim(), 800, 800,
addLogoCB.isChecked() ? BitmapFactory.decodeResource(getResources(), R.mipmap.qr_logo) : null,
filePath);
if (success) {
runOnUiThread(new Runnable() {
public void run() {
imageView.setImageBitmap(BitmapFactory.decodeFile(filePath));
}).start();
//文件存储根目录
private String getFileRoot(Context context) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File external = context.getExternalFilesDir(null);
if (external != null) {
return external.getAbsolutePath();
return context.getFilesDir().getAbsolutePath();
3.本项目中图片文件保存在
context.getExternalFilesDir(null)
目录之下的。按照官方的api文档,从KitKat开始( 4.4),保存文件到这个目录下将不需要SD卡读写权限。但是经过测验表明,在红米Note和魅族MX3上(均为android 4.4.4),的确不需要权限;但是在本人的华为P6上(Android 4.4.2),必须声明权限才能成功的保存文件,即必须在manifest中添加如下内容:
因此,个人猜测,所谓的不需要权限是从 Android 4.4.4开始的。今天网站后台登录页面需要生成一个二维码,然后在手机app上扫描这个二维码,实现网站登录的效果及其解决方案如下
时间: 16:07:54
&&&& 阅读:1923
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&要实现二维码登录,需要解决2个技术,1、需要js websocket 与后台php实现长连接技术
2、实现二维码生成技术
要实现这个功能第二个算是比较简单,只需要下载一个php的二维码生成器即可,但要实现长连接技术,经过多方查资料,有2中方式 1种是nodejs来实现后台服务,另外一种是 利用php的一个扩展 swool来实现后台服务,本例采用的是后者swool,
第一步,在打开登录页面的时候,利用php生成一个唯一 sign,用js的websocket技术连接上后台服务,并且把sign发送给后台服务,同时利用sign生成二维码
第二步,后台服务在收到这个sign后,把sign和当店socket的client端绑定第三步、利用app端的二维码工具扫描二维码,活动用sign生成的一段字符串,并把这个字符串和当前登录的用户信息,通过接口调用传递到后台
第四步、服务端接口 收到信息后,对sign和用户信息做校验,校验无误后,在发送socket消息 到后台服务上,后台服务收到消息 查找sign对应的客户端,并且发送消息到客户端,确认登录
第五步、登录页面收到确认登录的消息后 ,传到sign到登录页面
第六步、php登录页面收到sign后,验证sign,确定登录
&标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&原文:http://www.cnblogs.com/niun/p/5130374.html
教程昨日排行
&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!转载自:http://blog.csdn.net/otangba/article/details/8253822
接上一章,我们已经基本把业务逻辑分析清楚了
下面我们第一步,实现二维码的web动态生成。
页面的二维码包含的信息我在上一篇已经解释过,是一个页面的sessionID,这个sessionID主要是标示出哪个页面是哪个页面,例如你打开N个页面,必然每个页面的标示会不一样,只有你用手机扫描了某一个页面(page a)的二维码,将来响应操作的页面只能是page a。
实现二维码的类库非常多,如果你的平台是java的,可以选择zxing这种功能强大且应用广泛的类库,不过我们今天打算采用一个响应高并发无阻塞的服务器端技术:nodejs。
关于nodejs我也没有太多深入的研究,不过该技术是采用事件驱动模型的无阻塞服务。举一个案例,云输入法用nodejs作为服务器,非常的完美。
关于nodejs的安装已经相关的扩展如何安装,请自行去官网学习:http://nodejs.org
本文的例子将使用以下一些扩展:
QRcode,这个扩展是在nodejs生成二维码的扩展,可以生成客户端和服务器端,为了兼容性考虑,我们只用服务端的功能。由于服务端的功能需要一些额外的lib,例如canvas和colors,需要额外下载和配置。canvas是本地码,需要在不同的OS环境下编译,具体如何操作请查阅canvas的安装指南。
http和url,这2个扩展是nodejs基本扩展,提供web服务以及对url的分析。
fs,本地文件访问,这个我们不一定用,但是如果你需要将二维码保存为图片,以及读取,需要使用这个库。
uuid,生成nodejs服务端的UUID的库。
后面的文章我们会不断翻新今天的代码,可能还有一些新的库,例如连接XMPP服务器和redis的库,今天先不介绍。
有了这些扩展,我们第一步,引用
[javascript]&
var&QRCode&=&require('qrcode');&&
var&http&=&require('http');&&
var&url&=&require('url');&&
var&fs&=&require('fs');&&
var&UUID&=&require('uuid-js');&&
好了,我们来创建web服务:
[javascript]&
http.createServer(function(req,&res)&{&&
&&&&var&URL&=&url.parse(req.url);&&
&&&&var&PATH&=&URL.&&
&&&&var&uuid4&=&UUID.create();&&
&&&&var&sessionID&=&uuid4.toString();&&
&&&&if&(PATH&==&"/qrcodeimage")&{&&
&&&&&&&&var&sessionID&=&URL.&&
&&&&&&&&if&(typeof&(sessionID)&!=&"undefined")&{&&
&&&&&&&&&&&&generateQRCode(sessionID,&req,&res);&&
&&&&&&&&}&else&{&&
&&&&&&&&&&&&console.log("no&sessionID");&&
&&&&&&&&}&&
&&&&}&else&if&(PATH&==&"/")&{&&
&&&&&&&&console.log(sessionID);&&
&&&&&&&&generateIndex(sessionID,&req,&res);&&
}).listen(8888,&'localhost');&&
在web服务器的代码中,我们监听8888端口,并对/和/qrcodeimage做分析
如果访问的url为/则显示主页面,调用generateIndex方法,这个方法返回欢迎页面。
如果访问的url为/qrcodeimage,则调用generateQRCode方法,这个方法将生成二维码并返回二进制流。
下面是这个2个方法:
[javascript]&
function&generateQRCode(sessionID,&req,&res)&{&&
&&&&res.writeHead(200,&{&&
&&&&&&&&'Content-Type'&:&'image/png'&&
&&&&QRCode.draw(sessionID,&function(err,&canvas)&{&&
&&&&&&&&res.end(canvas.toBuffer());&&
function&generateIndex(sessionID,&req,&res)&{&&
&&&&res.writeHead(200,&{&&
&&&&&&&&'Content-Type'&:&'text/&charset=UTF-8'&&
&&&&&&&&&&&&.end('&html&&body&&p&align="center"&请扫描二维码&/p&&p&align="center"&&img&src="/qrcodeimage?'&&
&&&&&&&&&&&&&&&&&&&&+&sessionID&+&'"&&/p&&/body&&/html&');&&
代码非常的短,也不需要做什么解释,实际上就是用户在访问首页的时候,服务器创建sessionID,并将这个ID作为创建二维码图片的参数,而服务器再根据这个参数创建响应的二维码,也就是说页面和二维码是一一关联的。
运行一下:
用任何手机二维码软件扫一下看看,和console里面log出来的uuid一致。
那么今天我们的工作到此结束,本文只是一个简单的例子,仅作测试,没有任何的容错,生产系统绝对不能这样马虎哦。
实现手机扫描二维码页面登录,类似web微信-第四篇,服务器端
实现手机扫描二维码页面登录,类似web微信-第三篇,手机客户端
实现手机扫描二维码页面登录,类似web微信-第二篇,关于二维码的自动生成
实现手机扫描二维码页面登录,类似web微信-第一篇,业务分析
阅读(...) 评论()(暖暖的大叔)
第三方登录:

我要回帖

更多关于 上传图片生成二维码 的文章

 

随机推荐