最近想可否自動加上一些浮水印的效果
平常很少用程式來進行影像處理,
參考了java合并图片 – Ivan Zhang's 弹丸之地 – CSDNBlog ,發現Java實作還真容易
怪不得Java可以成為目前的主流程式語言之一。
小弟加以調整,把小圖淡化合併於左下角,感覺會有點浮水印的效果,近幾年這種效果蠻討喜的
以下這是原圖,就去網路找最近家中在看的韓劇「愛情殺手吳水晶」的圖片:
然後要合併的,就拿Keroro軍曹來吧,會比較討喜點:
程式如下:
import java.awt.AlphaComposite;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.imageio.ImageIO;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
public class DrawImage{
public static void main(String[] args) throws Exception{
InputStream imagein=new FileInputStream(“c:\\test\\a.jpg”);
InputStream imagein2=new FileInputStream(“d:\\test\\b.gif”);
BufferedImage image=ImageIO.read(imagein);
BufferedImage image2=ImageIO.read(imagein2);
Graphics2D g = image.createGraphics();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.6f));
g.drawImage(image2,image.getWidth()-image2.getWidth(),image.getHeight()-image2.getHeight(),null);
OutputStream out=new FileOutputStream(“c:\\test\\ok.jpg”);
JPEGImageEncoder enc=JPEGCodec.createJPEGEncoder(out);
enc.encode(image);
imagein.close();
imagein2.close();
out.close();
}
}
合併後如下:
很容易吧,幾行程式就可以有這樣的效果真是不錯!!
以上圖片引用,謝謝不知名網站借來學習!
這次是說的是如何將Vector進行排序
先前大致瞭解Java2本身有提供排序功能,但通常都在寫資料庫的程式
只要是資料排序,一般都在資料庫裡做掉了
很少很少需要在程式進行排序,剛好最近有study一下
寫上來與大家分享..^^
JAVA很簡單,只要是implement List,就可以透過Collections就可以排序啦
以下範例就是一個很簡單的排序:
Vector v = new Vector();
v.add(“anupama”);
v.add(“jyothi”);
v.add(“durga”);
v.add(“vaseef”);
v.add(“priya”);
Collections.sort(v);
System.out.println(“Vector elements after sorting : “);
for(int i=0; i<v.size(); i++)
System.out.println(v.get(i));
而如果Vector存入的不是字串這種單純的物件呢?
Collections可以透過實作Comparator來進行排序
以下就是要針對GoodItem的某一屬性進行比較排序,所以實作Comparator的compare即可
當比較大時就回傳1,反之就回傳-1:
public class PitemSort implements Comparator{
public int compare(Object obj1, Object obj2){
GoodItem o1=(GoodItem) obj1;
GoodItem o2=(GoodItem) obj2;
if(o1.getPrice()>o2.getPrice()){
return 1;
}
if(o1.getPrice()<o2.getPrice()){
return -1;
}
return 0;
}
}
而要使用時,只要import進行在sort時,指定要以實作的Comparator進行排序即可,範例指令如下:
Collections.sort(v, new PitemSort());
如此一來,就可以很簡單進行排序啦,不用再自己寫排序方法啦,而Collections非常的彈性,如果要進行
複雜的排序,應該都可以達到,今天就先講簡單的就好!有需要請自行去查API囉!!
參考資料:
http://www.programmersheaven.com/mb/java/381483/381921/re-sorting-in-vector/?S=B20000
今天花了一些時間在排除一個怪現象
因為覺得很奇特,所以特別寫上註記一下
給自己加深印象,也給可能會遇到的人參考一下
就是今天在撰寫程式利用jQuery的ajax 向另一隻程式要資料
寫法都沒有問題,但就是會出現ajax Error
初步排除法:
1.先確認程式是否無誤
2.再確認編碼是否為utf8
3.再確認回傳參數是否符合格式 (今天是使用json)
都確認過了,但就還是失敗
所以先把資料頁存成htm的方式試試
怪了,竟然成功了說 =.=|||
再仔細確認剛剛檢查的步驟,每一項都正確但只要換成JSP
就會失敗…最後發現問題點在
<%@ page contentType=”text/html; charset=UTF8″ %>
要調整為以下才行
<%@ page contentType=”text/html; charset=UTF-8” %>
怪吧! 瀏覽器兩者都認為是UTF-8的格式,但jQuery似乎比較挑一點
一定要寫UTF-8才行..@@ (又不知死了多少腦細胞了..)
JDK1.5版之後String 有提供一個format格式,很像c的printf 功能,蠻不錯用的
String.format(String format, Object… args)
String.format(Locale l, String format, Object… args)
可傳入指定的語言環境、格式字串和參數
返回一個格式化字符串。
格式字串,用法都差不多,以下簡單說明幾個常用的
%s 顯示字串
%5$-10s 顯示字串從第5位開始,- 為靠左對齊, 20為字串長度
%,10.2d 顯示數值,每三位數用逗點區隔,如不足十位會用空白靠右顯示
%5.2f 顯示浮點數,小數點二位數顯示
詳細的格式字串請參考:
Format http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html
資料來源:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html#format(java.util.Locale,%20java.lang.String,%20java.lang.Object…)
Spring 透過JavaMailSenderImpl 寄送Email時,預設是不透過認證方式寄信的
所以當使用smtp是需要帳號認證的,就要調整一下設定才行
首先要先建立一個class extends Properties,如下:
import java.util.Properties;
public class MailProperties extends Properties {
private String auth;
public MailProperties(String auth){
super.setProperty(“mail.smtp.auth”,auth);
}
}
然後在引入mail 的configure 檔案中加上使用參數即可:
<bean id=”mailProperties” class=”spring.email.MailProperties”>
<constructor-arg index=”0″>
<value>true</value>
</constructor-arg>
</bean>
並且在你的JavaMailSenderImpl使用參數中再加上username及password即可:
<bean id=”mailSender” class=”org.springframework.mail.javamail.JavaMailSenderImpl”>
<property name=”host”>
<value>yoursmtpserver</value>
</property>
<property name=”username”>
<value>username</value>
</property>
<property name=”password”>
<value>password</value>
</property>
<property name=”javaMailProperties”>
<ref local=”mailProperties”/>
</property>
</bean>
這樣寄信就能支援認證機制囉!!
參考資料:
http://www.cjsdn.net/post/view?bid=20&id=147550&sty=1&tpg=9&age=0
近期留言