直接代码:
fla的代码
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.geom.ColorTransform;
import flash.geom.Rectangle;
import flash.net.FileReference;
var bp:BitmapData = new BitmapData(240, 260, true, 0x00000000);
//显示位图,BitmapData类的draw方法帮助文档有详细介绍的
_root.createEmptyMovieClip("mc", 2);//创建一个影片显示截图
bp.draw(_root.pc, new Matrix(), new ColorTransform(), normal, new Rectangle(0, 0, 240, 260), true);//_root.pc是你要截图的对象
//如果不处理旋转是的锯齿,可以直接用下面一句,省去导入的ColorTransform,Matrix,Rectangle类.
//bp.draw(dy_txt);
var width = bp.width;
var height = bp.height;
var str:String = "";
for(var i=0; i<height; i++){
for(var j=0; j<width; j++){
str += bp.getPixel(j,i).toString() + ",";
}
}
var requestData = new LoadVars();
requestData.data = str;
requestData.width = width;
requestData.height = height;
var urlStr = "";//生成图片的地址;
requestData.sendAndLoad(urlStr, requestData, "POST");
System.security.allowDomain(URLstr);
_root.mc.attachBitmap(bp, 1);//显示截图
java代码:
<%@ page contentType="text/html; charset=utf-8" language="java"%>
<%@ page import="java.io.*"%>
<%@ page import="java.awt.image.BufferedImage"%>
<%@ page import="java.io.File"%>
<%@ page import="java.io.IOException"%>
<%@ page import="javax.imageio.ImageIO"%>
<%
String[] _data = request.getParameter("data").split(",");
int width = Integer.parseInt(request.getParameter("width"));
int height = Integer.parseInt(request.getParameter("height"));
BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB); //
for(int i=0; i<height; i++)
for(int j=0; j<width; j++){
tag.setRGB(j, i, Integer.parseInt(_data[i]));//设置像素
}
try {
ImageIO.write(tag, "png", new File("d:/flashImag/test" + System.currentTimeMillis()+".jpg")); //生成图片
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
本人已经试过是可以的,,虽然现在都用as3.0啦,,