vCard仕様を使用してjavaで名刺を生成するQRコードスキャン自動保存連絡先を携帯電話に保存
4795 ワード
vCardの紹介
vCardは電子名刺のファイルフォーマットの基準です.一般的には電子メールの後に添付されています.しかし、インターネット上で交換するなど、他の場合にも使用できます.vCardに含まれる情報は、名前、住所情報、電話番号、URL、logo、写真などです.vCard(またはVersitcardと呼ばれています)は、1995年にVersit連盟が提案したもので、当時連盟のメンバーにはアップル社、AT&Tテクノロジーが含まれていました(後の朗報)、IBMおよびシーメンス.1996年12月、フォーマットの所有権はインターネットメール連盟(IMC)に移された.この連盟は、インターネットメールに注目するいくつかの会社から構成されている.vCardとともに提案されたデータ交換のための基準にはvCalendarがあるが、現在はiCalendarに取って代わられている.インターネットメール連盟は、「すべてのvCalendar開発者は、これらの新しいオープンスタンダードを利用して、vCalendar 1.0とiCalendarを同時に互換化することができます.」vCard規格の2.1版は、Eメールクライアントによって広くサポートされています.3.0版は、RFC 2425およびRFC 2426に含まれるIETF標準追跡提案である.vCardの一般的なサブアーカイブ名は.vcf. 異なるプログラムはvCard標準の実装にも異なる.Mac OS XのAddress Bookでは、すべての連絡先をvcfファイルにエクスポートできますが、Microsoft Outlookでは1人1ファイルしかエクスポートできません.LinuxのKDEのKontactでは、ファイルごとに1人以上をインポートまたはエクスポートできます.
vCardファイルサンプル
JAvaコード生成QRコードGoogleが提供するzxingパッケージにQRコードを生成する必要があります.事前にプロジェクトにインポートする準備ができています(com.google.zxing.comon.BitMatrix) MatrixToImageWriterクラス
CreQcodeクラス
vCardは電子名刺のファイルフォーマットの基準です.一般的には電子メールの後に添付されています.しかし、インターネット上で交換するなど、他の場合にも使用できます.vCardに含まれる情報は、名前、住所情報、電話番号、URL、logo、写真などです.vCard(またはVersitcardと呼ばれています)は、1995年にVersit連盟が提案したもので、当時連盟のメンバーにはアップル社、AT&Tテクノロジーが含まれていました(後の朗報)、IBMおよびシーメンス.1996年12月、フォーマットの所有権はインターネットメール連盟(IMC)に移された.この連盟は、インターネットメールに注目するいくつかの会社から構成されている.vCardとともに提案されたデータ交換のための基準にはvCalendarがあるが、現在はiCalendarに取って代わられている.インターネットメール連盟は、「すべてのvCalendar開発者は、これらの新しいオープンスタンダードを利用して、vCalendar 1.0とiCalendarを同時に互換化することができます.」vCard規格の2.1版は、Eメールクライアントによって広くサポートされています.3.0版は、RFC 2425およびRFC 2426に含まれるIETF標準追跡提案である.vCardの一般的なサブアーカイブ名は.vcf. 異なるプログラムはvCard標準の実装にも異なる.Mac OS XのAddress Bookでは、すべての連絡先をvcfファイルにエクスポートできますが、Microsoft Outlookでは1人1ファイルしかエクスポートできません.LinuxのKDEのKontactでは、ファイルごとに1人以上をインポートまたはエクスポートできます.
vCardファイルサンプル
BEGIN:VCARD
VERSION:2.1
N:Gump;Forrest
FN:Forrest Gump
ORG:Gump Shrimp Co.
TITLE:Shrimp Man
TEL;WORK;VOICE:(111) 555-1212
TEL;HOME;VOICE:(404) 555-1212
EMAIL;PREF;INTERNET:[email protected]
REV:20080424T195243Z
END:VCARD
JAvaコード生成QRコード
import javax.imageio.ImageIO;
import java.io.File;
import java.io.OutputStream;
import java.io.IOException;
import java.awt.image.BufferedImage;
import com.google.zxing.common.BitMatrix;
public final class MatrixToImageWriter {
private static final int BLACK = 0xFF000000;
private static final int WHITE = 0xFFFFFFFF;
private MatrixToImageWriter() {
}
public static BufferedImage toBufferedImage(BitMatrix matrix) {
int width = matrix.getWidth();
int height = matrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, matrix.get(x, y) ? BLACK : WHITE);
}
}
return image;
}
public static void writeToFile(BitMatrix matrix, String format, File file) throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, file)) {
throw new IOException("Could not write an image of format " + format + " to " + file);
}
}
public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) throws IOException {
BufferedImage image = toBufferedImage(matrix);
if (!ImageIO.write(image, format, stream)) {
throw new IOException("Could not write an image of format " + format);
}
}
}
CreQcodeクラス
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
public class CreQcode {
public static void main(String[] args) {
try {
// 1. format
// BEGIN:VCARD
// "VERSION:3.0
// N:
// EMAIL:[email protected]
// TEL:12345678912
// TEL;CELL:12345678912
// ADR:
// ORG:
// TITLE:
// URL:http://blog.csdn.net/lidew521
// NOTE: 。。。
// END:VCARD"
// 2.
// ---------------------------------------
//
//
// ,
// -------------------------------------------------
// 3.
// , ,
// , java , android ,
// java
,
String content = "BEGIN:VCARD
" + "VERSION:3.0
" + "N:
" + "EMAIL:[email protected]
" + "TEL:15100000000
" + "ADR:
" + "ORG:
" + "TITLE:
" + "URL:
" + "NOTE:
" + "END:VCARD";
String path = "D:/";
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
Map hints = new HashMap();
hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, 400, 400, hints);
File file1 = new File(path, " .jpg");
MatrixToImageWriter.writeToFile(bitMatrix, "jpg", file1);
} catch (Exception e) {
e.printStackTrace();
}
}
}