下面是处理流程:
开始--->从网页中解析出IMG图片地址--->下载至本地-->缩放处理图片--->加上水印效果
----->上传至FTP--->存储完成后给出回馈信息---->结束
下面是代码实现:
//在线图片地址:
String sourceFilePath = "http://m2.img.libdd.com/farm5/2012/0914/11/BB0C1C675286CF6D30A23F5C96EB07FDA5D0FE05049E_314_460.JPEG";
//组装HTML代码片段
String destImgPath = ParseImgUtils.testUseEx(sourceFilePath);
//文件名
String filename = "E:\\ftpPath\\hello.jpg";
//下载至本地
try {
URLConnectionDownloader.download(destImgPath, filename);
} catch (Exception e) {
e.printStackTrace();
}
//按指定长度,宽度缩放图片大小
JPGTransformer jpgTransformer = new JPGTransformer();
String filename2 = "E:\\ftpPath\\hello_new.jpg";
try {
//注意:真正上传的是缩放后的文件
jpgTransformer.transform2(filename, filename2, 500, 400);
} catch (Exception e1) {
e1.printStackTrace();
}
//在這里添加水印效果
MarkPicture.pressText("中科院軟件所", filename2, "宋体", 1, 1, 25, 5, 5);
//延时1秒以执行之后的操作
try {
Thread.currentThread();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//上传至FTP地址
FtpUpload ftpUpload = new FtpUpload("*****", "***", "***");
File file = new File(filename2);
String destFileName = file.getName();
// String FileName = s.subString(lastIndexOf("\"), FullFileName.length);
//String fileString2 = filename.substring(filename.lastIndexOf("\\") + 1, filename.length() );
//通過時間生成隨機不重復的文件名
destFileName = RandomFileName.createFileNameByDate()+".jpg";
//destFileName = RandomFileName.uuidFileName();
//输入流定义
InputStream in = null;
try {
in = new FileInputStream(file);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
//設置上傳的FTP目錄
String ftpPath = "download";
//设定文件名和目录
if(ftpUpload.upMyFile(destFileName , in, ftpPath) == true){
System.out.println("图片文件上传至FTP服务器已成功! ");
//设定反馈信息
//文件上傳成功了后,記得將上傳的文件同之前的原始數據聯系起來
String destFilePath = ftpUpload.getFtpFilePath(ftpPath, destFileName);
//soureFilePath同destFilePath聯系起來,具體使用算法,我這里只做簡單的關聯(用map鍵值對),后面可以用數據庫方式,文件存儲方式,內存方式
Map<String, String> relateMap = new TreeMap<String, String>();
relateMap.put(sourceFilePath, destFilePath);
ImageUrl url =new ImageUrl();
url.setDestFilePath(destFilePath);
url.setSourceFilePath(sourceFilePath);
//添加一个别识码,全球唯一
url.setFlag(destFileName);
//将数据存入数据库
DBConn db = new DBConn();
db.saveToDb(url);
}else{
System.out.println("图片文件上传至FTP服务器失敗,請重試或聯系管理員! ");
}
上面还用到其他操作相关API,不过可以自已书写,也可以查看之前写的博客。