Pham_loi
Chức vụ: 04:38:55, 15-08-2016 |
Hôm nay tôi sẽ viết một bài gọi là demo cho các bạn mường tượng đc thế nào là mã hoá hình ảnh trong j2me.
Chỉ là demo nên code tôi không viết hoàn chỉnh nhé.. bạn nào muốn thì nghiên cứu thêm nhé..! Các bạn củng biết cách dạy của tôi rồi đấy. Trong code có hướng dẩn nhé. Nên tự đọc nhé. Sau đây là code:
<?php
/* Hackerpro536 package */
import java.io.IOException;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
/* import thư viện mã hoá base64 */
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
/* thư viện hình ảnh */
public class Hackerpro536_mahoa{
/*
*
* Giải mã các chuỗi hình ảnh
* @imageString là Chuỗi để giải mã
* @Trả lại giải mã hình ảnh */
public static BufferedImage decodeToImage(String imageString) {
BufferedImageimage=null;
byte[ imageByte;
try {
BASE64Decoder decoder = new BASE64Decoder();
imageByte = decoder.decodeBuffer(imageString);
ByteArrayInputStream bis= new ByteArrayInputStream(imageByte);
image=ImageIO.read(bis);
bis.close();
}
catch (Exception e) {
e.printStackTrace();
}
return image;
}
/*
*
* Mã hóa hình ảnh tới chuỗi
* @hình ảnh mã hóa
* @Loại như jpeg,bmp, ...
* @Trả lại chuỗi mã hóa
*/
public static String encodeToString(BufferedImage image,String type) {
String imageString=null;ByteArrayOutputStream bos= new ByteArrayOutputStream();
try {
ImageIO.write(image,type,bos);
byte[ imageBytes=bos.toByteArray();
BASE64Encoder encoder= new BASE64Encoder();
imageString=encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return imageString;
}
public static void main(String args[) throws IOException {
/* Kiểm tra hình ảnh để chuỗi và chuỗi hình ảnh bắt đầu */
BufferedImage img=ImageIO.read(newFile("hacker.png"));
BufferedImage newImg;
/* newImg là biến của BufferedImage */
String imgstr;
/* khởi tạo biến imgstr là biến của chuổi String */
imgstr=encodeToString(img,"png");
/* png là đinh dạng ảnh, và biến imgstr khởi tạo một giá trị mới mã hoá */
System.out.println(imgstr);
/* hàm println cho phép in chuổi đã encode lên */
newImg=decodeToImage(imgstr);
/* tạo 1 ảnh mới đã mã hoá từ ảnh trên và lưu cùng thư mục gốc */
ImageIO.write(newImg,"png", newFile("hacker1.png"));
/* hacker1 là ảnh đã decode trả về giá trị thật */
/* Kiểm tra hình ảnh tới chuỗi và chuỗi hình ảnh để kết thúc */
}
}
/* kết thúc chương trình */
?>
Copy code
/* Hackerpro536 package */
import java.io.IOException;
import sun.misc.BASE64Encoder;
import sun.misc.BASE64Decoder;
/* import thư viện mã hoá base64 */
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
/* thư viện hình ảnh */
public class Hackerpro536_mahoa{
/*
*
* Giải mã các chuỗi hình ảnh
* @imageString là Chuỗi để giải mã
* @Trả lại giải mã hình ảnh */
public static BufferedImage decodeToImage(String imageString) {
BufferedImageimage=null;
byte[ imageByte;
try {
BASE64Decoder decoder = new BASE64Decoder();
imageByte = decoder.decodeBuffer(imageString);
ByteArrayInputStream bis= new ByteArrayInputStream(imageByte);
image=ImageIO.read(bis);
bis.close();
}
catch (Exception e) {
e.printStackTrace();
}
return image;
}
/*
*
* Mã hóa hình ảnh tới chuỗi
* @hình ảnh mã hóa
* @Loại như jpeg,bmp, ...
* @Trả lại chuỗi mã hóa
*/
public static String encodeToString(BufferedImage image,String type) {
String imageString=null;ByteArrayOutputStream bos= new ByteArrayOutputStream();
try {
ImageIO.write(image,type,bos);
byte[ imageBytes=bos.toByteArray();
BASE64Encoder encoder= new BASE64Encoder();
imageString=encoder.encode(imageBytes);
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
return imageString;
}
public static void main(String args[) throws IOException {
/* Kiểm tra hình ảnh để chuỗi và chuỗi hình ảnh bắt đầu */
BufferedImage img=ImageIO.read(newFile("hacker.png"));
BufferedImage newImg;
/* newImg là biến của BufferedImage */
String imgstr;
/* khởi tạo biến imgstr là biến của chuổi String */
imgstr=encodeToString(img,"png");
/* png là đinh dạng ảnh, và biến imgstr khởi tạo một giá trị mới mã hoá */
System.out.println(imgstr);
/* hàm println cho phép in chuổi đã encode lên */
newImg=decodeToImage(imgstr);
/* tạo 1 ảnh mới đã mã hoá từ ảnh trên và lưu cùng thư mục gốc */
ImageIO.write(newImg,"png", newFile("hacker1.png"));
/* hacker1 là ảnh đã decode trả về giá trị thật */
/* Kiểm tra hình ảnh tới chuỗi và chuỗi hình ảnh để kết thúc */
}
}
/* kết thúc chương trình */
?>
Copy code
Tải về code trên (viết bằng word nhé)
Tải xuống Hackerpro536_package.doc (29.5KB)
Nguồn: Hackerpro536
Chỉnh sửa lúc 2016-08-15 05:06 bởi Pham_loi
: 0 ♥