|
@@ -2,6 +2,7 @@ package com.iamberry.wechat.tools;
|
|
|
|
|
|
import com.mortennobel.imagescaling.ResampleFilters;
|
|
|
import com.mortennobel.imagescaling.ResampleOp;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
import javax.imageio.ImageIO;
|
|
|
import java.awt.*;
|
|
@@ -76,26 +77,32 @@ public final class ImageUtils {
|
|
|
|
|
|
|
|
|
String newImg = "E:\\java-work\\iamberry-watero\\watero-wechat-web\\target\\watero-wechat-web-1.0.0\\common\\images\\movable\\1.jpg";
|
|
|
- String headImg = "E:\\java-work\\iamberry-watero\\watero-wechat-web\\target\\watero-wechat-web-1.0.0\\common\\images\\movable\\7a7620fb_head.jpg";
|
|
|
- String codeImg = "E:\\java-work\\iamberry-watero\\watero-wechat-web\\target\\watero-wechat-web-1.0.0\\common\\images\\movable\\7a7620fb_code.jpg";
|
|
|
+ String headImg = "E:\\java-work\\iamberry-watero\\watero-wechat-web\\target\\watero-wechat-web-1.0.0\\common\\images\\movable\\ff18fcf3_head.jpg";
|
|
|
+ String codeImg = "E:\\java-work\\iamberry-watero\\watero-wechat-web\\target\\watero-wechat-web-1.0.0\\common\\images\\movable\\545e3eeb_code.jpg";
|
|
|
String text = "小茗同学";
|
|
|
- String alltext = "慈母手中线,\n游子身上衣。\n临行密密缝,\n意恐迟迟归。\n谁言寸草心,\n报得三春晖!";
|
|
|
-// String alltext = "You are the best mom thatsdafsadasfsadsaf a son ever had.\nSometimes it may not seem like it, but I really do love you.God could not be everywhere and therefore he made mothers.";
|
|
|
+ String alltext = "慈母手中线,游子身上衣。临行密密缝,意恐迟迟归。谁言寸草心,报得三春晖!报得三春晖!报得三春晖!报得三春晖!!!";
|
|
|
+// String alltext = "You are the best mom,th,asssx had.\nSometimes it may not seem like it, but";
|
|
|
|
|
|
|
|
|
+ PosterNumUtils pnu = new PosterNumUtils(0);
|
|
|
+
|
|
|
try {
|
|
|
ImageUtils.pressPost(newImg,
|
|
|
- headImg,PosterNumUtils.HEAD_X,PosterNumUtils.HEAD_Y,
|
|
|
- codeImg,PosterNumUtils.CODE_X,PosterNumUtils.CODE_Y,
|
|
|
- text,PosterNumUtils.TEXT_X,PosterNumUtils.TEXT_Y,new Color(221,106,140),PosterNumUtils.TEXT_FONT_SIZE,
|
|
|
- alltext,PosterNumUtils.TEXT_CONTENT_X,PosterNumUtils.TEXT_CONTENT_Y,new Color(0,0,0),PosterNumUtils.TEXT_CONTENT_FONT_SIZE
|
|
|
+ headImg,pnu.HEAD_X,pnu.HEAD_Y,
|
|
|
+ codeImg,pnu.CODE_X,pnu.CODE_Y,
|
|
|
+ text,pnu.TEXT_X,pnu.TEXT_Y,new Color(0,0,0),pnu.TEXT_FONT_SIZE,
|
|
|
+ alltext,pnu.TEXT_CONTENT_X,pnu.TEXT_CONTENT_Y,new Color(0,0,0),pnu.TEXT_CONTENT_FONT_SIZE,
|
|
|
+ pnu.FONT_LINE_SPACING,pnu.FONT_NUMBER
|
|
|
);
|
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
+
|
|
|
+// String newString = new String("三大将大".getBytes("GB2312"), "ISO-8859-1");
|
|
|
+// System.out.println(newString.length());
|
|
|
+
|
|
|
// String ENCODE = "utf-8";
|
|
|
// String name = java.net.URLDecoder.decode( "%E5%B0%8F%E8%8C%97%E5%90%8C%E5%AD%A6", ENCODE);
|
|
|
-//
|
|
|
// System.out.println(name);
|
|
|
|
|
|
}
|
|
@@ -107,7 +114,7 @@ public final class ImageUtils {
|
|
|
String srcImg1, int imgx1, int imgy1,
|
|
|
String srcImg2, int imgx2, int imgy2,
|
|
|
String headText, int x, int y,Color xyColorName,int xySizeNum,
|
|
|
- String pressText, int m, int n,Color mnColorName,int mnSizeNum
|
|
|
+ String pressText, int m, int n,Color mnColorName,int mnSizeNum,int fontLineSpacing,int fontNumber
|
|
|
) throws Exception{
|
|
|
float alpha = 1;
|
|
|
|
|
@@ -127,11 +134,11 @@ public final class ImageUtils {
|
|
|
List<String> strList = new ArrayList<>();
|
|
|
String strs[] = pressText.split("\n");
|
|
|
for (String s : strs) {
|
|
|
- strList.addAll(getStrArr(s));
|
|
|
+ strList.addAll(getStrArr(s,fontNumber));
|
|
|
}
|
|
|
for (String strCon : strList) { //循环行生成文本
|
|
|
customText(g,width,height,strCon,"微软雅黑",mnSizeNum,mnColorName,Font.PLAIN,m,n);
|
|
|
- n += PosterNumUtils.FONT_LINE_SPACING;
|
|
|
+ n += fontLineSpacing;
|
|
|
}
|
|
|
|
|
|
Image tarImage = ImageIO.read(new File(srcImg1));
|
|
@@ -149,7 +156,7 @@ public final class ImageUtils {
|
|
|
* @param text
|
|
|
* @return
|
|
|
*/
|
|
|
- public static List<String> getStrArr(String text){
|
|
|
+ public static List<String> getStrArr(String text,int fontNumber){
|
|
|
if(text == null){
|
|
|
return new ArrayList<>();
|
|
|
}
|
|
@@ -157,7 +164,7 @@ public final class ImageUtils {
|
|
|
List<String> strList = new ArrayList<>();
|
|
|
StringBuffer temp = new StringBuffer();
|
|
|
while (text.length() > num){
|
|
|
- if(i >= PosterNumUtils.FONT_NUMBER){
|
|
|
+ if(i >= fontNumber){
|
|
|
strList.add(temp.toString());
|
|
|
temp = new StringBuffer();
|
|
|
i = 0;
|
|
@@ -168,17 +175,28 @@ public final class ImageUtils {
|
|
|
try {
|
|
|
String newString = new String(x.getBytes("GB2312"), "ISO-8859-1");
|
|
|
i+=newString.length();
|
|
|
- if(32 == c){ //英文状态下,本行字母写不下,换行
|
|
|
- String later = text.substring(num,text.length());
|
|
|
- if(later.indexOf(" ") > -1 && later.indexOf(" ",later.indexOf(" ")+1) > 1){
|
|
|
- String a = later.substring(0,later.indexOf(" ",later.indexOf(" ")+1)); //str.indexOf("a", str.indexOf("a")+1)
|
|
|
- if((a.length()+i) > PosterNumUtils.FONT_NUMBER){
|
|
|
- strList.add(temp.toString());
|
|
|
+ if(32 == c || 46 == c || 44 ==c){ //英文状态下,本行字母写不下,换行
|
|
|
+ temp.append(c);
|
|
|
+ isWarp = true;
|
|
|
+
|
|
|
+ String later = text.substring(num+1,text.length());
|
|
|
+ int shortest = text.length(); //下一个单词的长度
|
|
|
+ if(later.indexOf(" ") > 0 && later.indexOf(" ") < shortest){
|
|
|
+ shortest = later.indexOf(" ");
|
|
|
+ }
|
|
|
+ if(later.indexOf(",") > 0 && later.indexOf(",") < shortest){
|
|
|
+ shortest = later.indexOf(",");
|
|
|
+ }
|
|
|
+ if(later.indexOf(".") > 0 && later.indexOf(".") < shortest){
|
|
|
+ shortest = later.indexOf(".");
|
|
|
+ }
|
|
|
+ if(shortest > 0){
|
|
|
+ if((i + shortest) > fontNumber){
|
|
|
+ strList.add(temp.toString());
|
|
|
temp = new StringBuffer();
|
|
|
i = 0;
|
|
|
- isWarp = true;
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
} catch (UnsupportedEncodingException e) {
|
|
|
e.printStackTrace();
|
|
@@ -188,7 +206,9 @@ public final class ImageUtils {
|
|
|
}
|
|
|
num++;
|
|
|
}
|
|
|
- strList.add(temp.toString());
|
|
|
+ if(!StringUtils.isEmpty(temp.toString())){
|
|
|
+ strList.add(temp.toString());
|
|
|
+ }
|
|
|
return strList;
|
|
|
}
|
|
|
|