ap运动会报名表表上的home study code 怎么填

项目语言:JAVA
权限:read-only(如需更高权限请先加入项目)
Index: ImageUtils.java
===================================================================
--- ImageUtils.java (revision 0)
+++ ImageUtils.java (revision 6)
@@ -0,0 +1,595 @@
+package com.ap.twork.
+import java.awt.AlphaC
+import java.awt.C
+import java.awt.F
+import java.awt.G
+import java.awt.Graphics2D;
+import java.awt.I
+import java.awt.T
+import java.awt.color.ColorS
+import java.awt.geom.AffineT
+import java.awt.image.AffineTransformOp;
+import java.awt.image.BufferedI
+import java.awt.image.ColorConvertOp;
+import java.awt.image.CropImageF
+import java.awt.image.FilteredImageS
+import java.awt.image.ImageF
+import java.io.F
+import java.io.FileOutputS
+import java.io.IOE
+import java.io.OutputS
+import javax.imageio.ImageIO;
+import com.ap.twork.util.qiniu.CloudS
+import Decoder.BASE64D
+public class ImageUtils {
* 几种常见的图片格式
+ public static String IMAGE_TYPE_GIF = &gif&;// 图形交换格式
+ public static String IMAGE_TYPE_JPG = &jpg&;// 联合照片专家组
+ public static String IMAGE_TYPE_JPEG = &jpeg&;// 联合照片专家组
+ public static String IMAGE_TYPE_BMP = &bmp&;// 英文Bitmap(位图)的简写,它是Windows操作系统中的标准图像文件格式
+ public static String IMAGE_TYPE_PNG = &png&;// 可移植网络图形
+ public static String IMAGE_TYPE_PSD = &psd&;// Photoshop的专用格式Photoshop
* 程序入口:用于测试
* @param args
* @throws IOException
+ public static void main(String[] args) throws IOException {
// 1-缩放图像:
// 方法一:按比例缩放
// ImageUtils.scale(&e:/abc.jpg&, &e:/abc_scale.jpg&, 2, true);//测试OK
// 方法二:按高度和宽度缩放
// ImageUtils.scale2(&e:/abc.jpg&, &e:/abc_scale2.jpg&, 500, 300,
// true);//测试OK
// 2-切割图像:
// 方法一:按指定起点坐标和宽高切割
///ImageUtils.cut(&e:/wxscan.png&, &e:/wxscan.png_cut.png&, 0, 0, 100, 100);// 测试OK
// 方法二:指定切片的行数和列数
// ImageUtils.cut2(&e:/abc.jpg&, &e:/&, 2, 2 );//测试OK
// 方法三:指定切片的宽度和高度
// ImageUtils.cut3(&e:/abc.jpg&, &e:/&, 300, 300 );//测试OK
// 3-图像类型转换:
// ImageUtils.convert(&e:/abc.jpg&, &GIF&, &e:/abc_convert.gif&);//测试OK
// 4-彩色转黑白:
// ImageUtils.gray(&e:/abc.jpg&, &e:/abc_gray.jpg&);//测试OK
// 5-给图片添加文字水印:
// 方法一:
// ImageUtils.pressText(&我是水印文字&,&e:/abc.jpg&,&e:/abc_pressText.jpg&,&宋体&,Font.BOLD,Color.white,80,
// 0, 0, 0.5f);//测试OK
// 方法二:
// ImageUtils.pressText2(&我也是水印文字&,
// &e:/abc.jpg&,&e:/abc_pressText2.jpg&, &黑体&, 36, Color.white, 80, 0,
// 0, 0.5f);//测试OK
// 6-给图片添加图片水印:
// ImageUtils.pressImage(&e:/abc2.jpg&,
// &e:/abc.jpg&,&e:/abc_pressImage.jpg&, 0, 0, 0.5f);//测试OK
ImageUtils.GenerateImage(&iVBORw0KGgoAAAANSUhEUgAAAMMAAAB4CAYAAABPckYcAAAgAElEQVR4Xu3dA7R11/U28F3btm27qW0bqZk2VWrbbtrUTVPbRsrUtm0b//Hb43vumFk5++AiPe+XtcZ4xz3vOct78plzrX2o//73v/8d1rSY2qEOdajhX//613DYwx52uPnNbz685CUvGWf72c9+djjnOc85/OAHPxjOdKYzDX/5y1/GunU52mj76le/erjOda4z/OMf/xjOfvazD1//+teHU57ylMNXv/rV4QhHOMLwxje+cbj2ta899vvYxz52uOc977nlHTHuoQ996PHfrPL3v/994zfzztz9VbTz+T//+c/4+d///vdwmMMcZu68vve97w2nOtWpNupop72irT6s9WpXu9rwt7/9bTjrWc86fPvb3x7OcIYzDF/84heHwx3ucMNrXvOa4brXve6439ZQ52Vvj3zkIw/f+MY3hpOc5CTDZz7zmeE85znP2L9n86IXvWjjWW15A/8HHRxqV2eGH/7wh8MZz3jGkRlS8gDnMQOi+fKXvzwc6UhHGt7whjcM17zmNccHf5nLXGb8h3CUECdCCGFXhsvn1NPuRje60XCKU5xi+POf/zw8//nPHxB++kKcmPcqV7nKBtFPPfcwQ37/5Cc/Obzvfe8bCTXj+nurW91qON7xjjf86le/Gp74xCeOv333u98dhYDi/9mLWcxw+tOffmSGwx/+8GOb613vehv127l1ZvgfcGke4iLNgBnOcpazbGiGOlXSkHR75StfOUr+qhkqM7z+9a8frnWta00SwKrLf9e73jVc8pKXHH7zm98MJz/5yTeYIf0gtn333Xf45z//OWqmaAKMFCKPFvB/zERqP+5xjxvuf//7H2Q6tCQpr656yoc+9KFht912GzUCBsxeTDHDl770pbHta1/72uH617/+uBcRCNHQ0Qw0atcMq1LFFuvPM5Oo6HOd61zD97///dHkmVcQHmmNqM5xjnOMZhJm+MpXvjIc8YhH3NAMCMaY+YuRUmLyIKyYHlNjkuDnO9/5RmI6xjGOMWoIhRbCALe//e2Hpz/96RvNYwot2q6nPe1pwx577HGQaswjmqiWD3zgAyNDxjyapxmYSV/4whdGzfDyl798uPGNbzx3KkzTk53sZMOnP/3p4bznPe9Yt5tJi57eFn9f5DMgbIRGEiO81u7O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&);
byte[] b= FileUtil.toByteArray(&e://444.png&);
CloudStorage.uploadByData(Const.SPACE_NAME, b, &666.jpg& );
FileUtil.delFile(&e://444.png&);
+ public static boolean GenerateImage(String imgStr,String filePath) { // 对字节数组字符串进行Base64解码并生成图片
if (imgStr == null) // 图像数据为空
BASE64Decoder decoder = new BASE64Decoder();
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i & b. ++i) {
if (b[i] & 0) {// 调整异常数据
b[i] += 256;
// 生成jpeg图片
//String imgFilePath = &e://444.png&;// 新生成的图片
OutputStream out = new FileOutputStream(filePath);
out.write(b);
out.flush();
out.close();
} catch (Exception e) {
* 缩放图像(按比例缩放)
* @param srcImageFile
源图像文件地址
* @param result
缩放后的图像地址
* @param scale
* @param flag
缩放选择:true 放大; false 缩小;
+ public final static void scale(String srcImageFile, String result,
int scale, boolean flag) {
BufferedImage src = ImageIO.read(new File(srcImageFile)); // 读入文件
int width = src.getWidth(); // 得到源图宽
int height = src.getHeight(); // 得到源图长
if (flag) {// 放大
width = width *
height = height *
} else {// 缩小
width = width /
height = height /
Image image = src.getScaledInstance(width, height,
Image.SCALE_DEFAULT);
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(image, 0, 0, null); // 绘制缩小后的图
g.dispose();
ImageIO.write(tag, &JPEG&, new File(result));// 输出到文件流
} catch (IOException e) {
e.printStackTrace();
* 缩放图像(按高度和宽度缩放)
* @param srcImageFile
源图像文件地址
* @param result
缩放后的图像地址
* @param height
缩放后的高度
* @param width
缩放后的宽度
* @param bb
比例不对时是否需要补白:true为补白; false为不补白;
+ public final static void scale2(String srcImageFile, String result,
int height, int width, boolean bb) {
double ratio = 0.0; // 缩放比例
File f = new File(srcImageFile);
BufferedImage bi = ImageIO.read(f);
Image itemp = bi.getScaledInstance(width, height, bi.SCALE_SMOOTH);
// 计算比例
if ((bi.getHeight() & height) || (bi.getWidth() & width)) {
if (bi.getHeight() & bi.getWidth()) {
ratio = (new Integer(height)).doubleValue()
/ bi.getHeight();
ratio = (new Integer(width)).doubleValue() / bi.getWidth();
AffineTransformOp op = new AffineTransformOp(
AffineTransform.getScaleInstance(ratio, ratio), null);
itemp = op.filter(bi, null);
if (bb) {// 补白
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.setColor(Color.white);
g.fillRect(0, 0, width, height);
if (width == itemp.getWidth(null))
g.drawImage(itemp, 0, (height - itemp.getHeight(null)) / 2,
itemp.getWidth(null), itemp.getHeight(null),
Color.white, null);
g.drawImage(itemp, (width - itemp.getWidth(null)) / 2, 0,
itemp.getWidth(null), itemp.getHeight(null),
Color.white, null);
g.dispose();
ImageIO.write((BufferedImage) itemp, &JPEG&, new File(result));
} catch (IOException e) {
e.printStackTrace();
* 图像切割(按指定起点坐标和宽高切割)
* @param srcImageFile
源图像地址
* @param result
切片后的图像地址
* @param x
目标切片起点坐标X
* @param y
目标切片起点坐标Y
* @param width
目标切片宽度
* @param height
目标切片高度
+ public final static void cut(String srcImageFile, String result, int x,
int y, int width, int height) {
File file =
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidth & 0 && srcHeight & 0) {
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_DEFAULT);
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
ImageFilter cropFilter = new CropImageFilter(x, y, width,
Image img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(), cropFilter));
BufferedImage tag = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, width, height, null); // 绘制切割后的图
g.dispose();
// 输出为文件
file = new File(result);
ImageIO.write(tag, &JPEG&, file);
System.out.println(&& + file.getPath());
} catch (Exception e) {
e.printStackTrace();
* 图像切割(指定切片的行数和列数)
* @param srcImageFile
源图像地址
* @param descDir
切片目标文件夹
* @param rows
目标切片行数。默认2,必须是范围 [1, 20] 之内
* @param cols
目标切片列数。默认2,必须是范围 [1, 20] 之内
+ public final static void cut2(String srcImageFile, String descDir,
int rows, int cols) {
if (rows &= 0 || rows & 20)
rows = 2; // 切片行数
if (cols &= 0 || cols & 20)
cols = 2; // 切片列数
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidth & 0 && srcHeight & 0) {
ImageFilter cropF
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_DEFAULT);
int destWidth = srcW // 每张切片的宽度
int destHeight = srcH // 每张切片的高度
// 计算切片的宽度和高度
if (srcWidth % cols == 0) {
destWidth = srcWidth /
destWidth = (int) Math.floor(srcWidth / cols) + 1;
if (srcHeight % rows == 0) {
destHeight = srcHeight /
destHeight = (int) Math.floor(srcWidth / rows) + 1;
// 循环建立切片
// 改进的想法:是否可用多线程加快切割速度
for (int i = 0; i & i++) {
for (int j = 0; j & j++) {
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * destWidth, i
* destHeight, destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(),
cropFilter));
BufferedImage tag = new BufferedImage(destWidth,
destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
// 输出为文件
ImageIO.write(tag, &JPEG&, new File(descDir + &_r& + i
+ &_c& + j + &.jpg&));
} catch (Exception e) {
e.printStackTrace();
* 图像切割(指定切片的宽度和高度)
* @param srcImageFile
源图像地址
* @param descDir
切片目标文件夹
* @param destWidth
目标切片宽度。默认200
* @param destHeight
目标切片高度。默认150
+ public final static void cut3(String srcImageFile, String descDir,
int destWidth, int destHeight) {
if (destWidth &= 0)
destWidth = 200; // 切片宽度
if (destHeight &= 0)
destHeight = 150; // 切片高度
// 读取源图像
BufferedImage bi = ImageIO.read(new File(srcImageFile));
int srcWidth = bi.getHeight(); // 源图宽度
int srcHeight = bi.getWidth(); // 源图高度
if (srcWidth & destWidth && srcHeight & destHeight) {
ImageFilter cropF
Image image = bi.getScaledInstance(srcWidth, srcHeight,
Image.SCALE_DEFAULT);
int cols = 0; // 切片横向数量
int rows = 0; // 切片纵向数量
// 计算切片的横向和纵向数量
if (srcWidth % destWidth == 0) {
cols = srcWidth / destW
cols = (int) Math.floor(srcWidth / destWidth) + 1;
if (srcHeight % destHeight == 0) {
rows = srcHeight / destH
rows = (int) Math.floor(srcHeight / destHeight) + 1;
// 循环建立切片
// 改进的想法:是否可用多线程加快切割速度
for (int i = 0; i & i++) {
for (int j = 0; j & j++) {
// 四个参数分别为图像起点坐标和宽高
// 即: CropImageFilter(int x,int y,int width,int height)
cropFilter = new CropImageFilter(j * destWidth, i
* destHeight, destWidth, destHeight);
img = Toolkit.getDefaultToolkit().createImage(
new FilteredImageSource(image.getSource(),
cropFilter));
BufferedImage tag = new BufferedImage(destWidth,
destHeight, BufferedImage.TYPE_INT_RGB);
Graphics g = tag.getGraphics();
g.drawImage(img, 0, 0, null); // 绘制缩小后的图
g.dispose();
// 输出为文件
ImageIO.write(tag, &JPEG&, new File(descDir + &_r& + i
+ &_c& + j + &.jpg&));
} catch (Exception e) {
e.printStackTrace();
* 图像类型转换:GIF-&JPG、GIF-&PNG、PNG-&JPG、PNG-&GIF(X)、BMP-&PNG
* @param srcImageFile
源图像地址
* @param formatName
包含格式非正式名称的 String:如JPG、JPEG、GIF等
* @param destImageFile
目标图像地址
+ public final static void convert(String srcImageFile, String formatName,
String destImageFile) {
File f = new File(srcImageFile);
f.canRead();
f.canWrite();
BufferedImage src = ImageIO.read(f);
ImageIO.write(src, formatName, new File(destImageFile));
} catch (Exception e) {
e.printStackTrace();
* 彩色转为黑白
* @param srcImageFile
源图像地址
* @param destImageFile
目标图像地址
+ public final static void gray(String srcImageFile, String destImageFile) {
BufferedImage src = ImageIO.read(new File(srcImageFile));
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
src = op.filter(src, null);
ImageIO.write(src, &JPEG&, new File(destImageFile));
} catch (IOException e) {
e.printStackTrace();
* 给图片添加文字水印
* @param pressText
* @param srcImageFile
源图像地址
* @param destImageFile
目标图像地址
* @param fontName
水印的字体名称
* @param fontStyle
水印的字体样式
* @param color
水印的字体颜色
* @param fontSize
水印的字体大小
* @param x
* @param y
* @param alpha
透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
+ public final static void pressText(String pressText, String srcImageFile,
String destImageFile, String fontName, int fontStyle, Color color,
int fontSize, int x, int y, float alpha) {
File img = new File(srcImageFile);
Image src = ImageIO.read(img);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
// 在指定坐标绘制水印文字
g.drawString(pressText, (width - (getLength(pressText) * fontSize))
/ 2 + x, (height - fontSize) / 2 + y);
g.dispose();
ImageIO.write((BufferedImage) image, &JPEG&,
new File(destImageFile));// 输出到文件流
} catch (Exception e) {
e.printStackTrace();
* 给图片添加文字水印
* @param pressText
* @param srcImageFile
源图像地址
* @param destImageFile
目标图像地址
* @param fontName
* @param fontStyle
* @param color
* @param fontSize
* @param x
* @param y
* @param alpha
透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
+ public final static void pressText2(String pressText, String srcImageFile,
String destImageFile, String fontName, int fontStyle, Color color,
int fontSize, int x, int y, float alpha) {
File img = new File(srcImageFile);
Image src = ImageIO.read(img);
int width = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, width, height, null);
g.setColor(color);
g.setFont(new Font(fontName, fontStyle, fontSize));
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
// 在指定坐标绘制水印文字
g.drawString(pressText, (width - (getLength(pressText) * fontSize))
/ 2 + x, (height - fontSize) / 2 + y);
g.dispose();
ImageIO.write((BufferedImage) image, &JPEG&,
new File(destImageFile));
} catch (Exception e) {
e.printStackTrace();
* 给图片添加图片水印
* @param pressImg
* @param srcImageFile
源图像地址
* @param destImageFile
目标图像地址
* @param x
修正值。 默认在中间
* @param y
修正值。 默认在中间
* @param alpha
透明度:alpha 必须是范围 [0.0, 1.0] 之内(包含边界值)的一个浮点数字
+ public final static void pressImage(String pressImg, String srcImageFile,
String destImageFile, int x, int y, float alpha) {
File img = new File(srcImageFile);
Image src = ImageIO.read(img);
int wideth = src.getWidth(null);
int height = src.getHeight(null);
BufferedImage image = new BufferedImage(wideth, height,
BufferedImage.TYPE_INT_RGB);
Graphics2D g = image.createGraphics();
g.drawImage(src, 0, 0, wideth, height, null);
// 水印文件
Image src_biao = ImageIO.read(new File(pressImg));
int wideth_biao = src_biao.getWidth(null);
int height_biao = src_biao.getHeight(null);
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_ATOP,
g.drawImage(src_biao, (wideth - wideth_biao) / 2,
(height - height_biao) / 2, wideth_biao, height_biao, null);
// 水印文件结束
g.dispose();
ImageIO.write((BufferedImage) image, &JPEG&,
new File(destImageFile));
} catch (Exception e) {
e.printStackTrace();
* 计算text的长度(一个中文算两个字符)
* @param text
+ public final static int getLength(String text) {
int length = 0;
for (int i = 0; i & text.length(); i++) {
if (new String(text.charAt(i) + &&).getBytes().length & 1) {
length += 2;
length += 1;
return length / 2;
\ No newline at end of file
(C)&&2013&&Alibaba&&Inc.&&All&&rights&&resvered.
Powered by}

我要回帖

更多关于 运动会报名表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信