志在指尖
用双手敲打未来

bitmap+文本生成新的bitmap的实现

packageinfo.ecloud.merchant.util;
importandroid.graphics.Bitmap;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.Rect;
importcom.google.zxing.BarcodeFormat;
importcom.google.zxing.EncodeHintType;
importcom.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
importcom.journeyapps.barcodescanner.BarcodeEncoder;
importjava.util.Hashtable;publicclassSaveImageUtils{privatestaticfinalStringCHARSET=”UTF-8″;/**
*生成图片加上title的图片
*@paramcontent
*@paramtitle
*@return*/publicstaticBitmapcreateImage(Stringcontent,Stringtitle){intpicWidth=520;//生成图片的宽度intpicHeight=565;//生成图片的高度inttitleTextSize=25;inttextColor=Color.BLACK;intqrWidth=370;intqrHeight=370;intpaddingTop=5;intpaddingMiddle=20;intpaddingBottom=20;//终究生成的图片Bitmapresult=Bitmap.createBitmap(picWidth,picHeight,Bitmap.Config.ARGB_8888);
Paintpaint=newPaint();
paint.setColor(Color.WHITE);
Canvascanvas=newCanvas(result);//先画一整块白色矩形块canvas.drawRect(0,0,picWidth,picHeight,paint);//画title文字Rectbounds=newRect();
paint.setColor(textColor);
paint.setTextSize(titleTextSize);//获取文字的字宽高,以便将文字与图片中心对齐paint.getTextBounds(title,0,title.length(),bounds);//画白色矩形块intqrTop=paddingTop+titleTextSize+paddingMiddle;//二维码的顶部高度//画二维码Hashtablehints=newHashtable<>();Android
hints.put(EncodeHintType.ERROR_CORRECTION,ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET,CHARSET);
hints.put(EncodeHintType.MARGIN,5);
Bitmapimage=null;try{
BarcodeEncoderbarcodeEncoder=newBarcodeEncoder();
image=barcodeEncoder.encodeBitmap((String)content,BarcodeFormat.QR_CODE,400,400);
}catch(Exceptione){
e.printStackTrace();
}
paint.setColor(Color.BLACK);
canvas.drawBitmap(image,(picWidth-qrWidth)/2,qrTop,paint);//画文字paint.setColor(Color.BLACK);
paint.setTextSize(titleTextSize);intline=3;inttextTop=qrTop+qrHeight+paddingBottom;//地址的顶部高度for(inti=0;i<line;i++){
String[]split=title.split(“-“);
paint.getTextBounds(title,0,split[i].length(),bounds);
canvas.drawText(split[i],picWidth/2-bounds.width()/2,textTop+i*titleTextSize+i*5+bounds.height()/2,paint);
}
canvas.save();
canvas.restore();returnresult;
}
}

未经允许不得转载:IT技术网站 » bitmap+文本生成新的bitmap的实现
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载