flash+asp.net 拍照源程序
//导入类
import flash.display.BitmapData;
//获取摄像
var cam:Camera = Camera.get ();
var my_video:Video;
my_video.attachVideo (cam);
//创建视频控件
var imger:BitmapData = new BitmapData (my_video._width, my_video._height);
var imgShow:MovieClip = createEmptyMovieClip ("bitmap_mc", this.getNextHighestDepth ());
var thehang:Number = 0;
var ID:Number;
var PX:Array = new Array ();
var filename:String;
//按钮初始状态
upfilebutton.enabled = false;
upfilebutton._alpha = 50;
viewbutton.enabled = false;
viewbutton._alpha = 50;
statedisplay._visible = false;
//相框列表树
var loadimageframe:mx.controls.ProgressBar;
var imageframe:mx.controls.Loader;
var framelist:mx.controls.Tree;
loadimageframe._visible = false;
loadimageframe.indeterminate = true;
loadimageframe.source = imageframe;
loadimageframe.mode = "polled";
var pbListener:Object = new Object ();
pbListener.complete = function (evt:Object)
{
evt.target._visible = false;
};
loadimageframe.addEventListener ("complete", pbListener);
var treeDP_xml:XML = new XML ();
treeDP_xml.ignoreWhite = true;
treeDP_xml.onLoad = function (success:Boolean)
{
if (success) {
framelist.dataProvider = this.firstChild;
}
};
treeDP_xml.load ("gallery_tree.xml");
var treeListener:Object = new Object ();
treeListener.change = function (evt:Object)
{
var treeNode:XMLNode = evt.target.selectedItem;
if (treeNode.attributes.src != undefined) {
loadimageframe._visible = true;
imageframe.load (treeNode.attributes.src);
}
};
framelist.addEventListener ("change", treeListener);
//定义按钮事件
blurbutton.onRelease = capture;
viewbutton.onRelease = viewimg;
upfilebutton.onRelease = upload;
function capture ()
{
statedisplay._visible = true;
statedisplay.statebar.text = "正在拍下您的靓照,请稍等";
blurbutton.enabled = false;
blurbutton._alpha = 50;
upfilebutton.enabled = false;
upfilebutton._alpha = 50;
viewbutton.enabled = false;
viewbutton._alpha = 50;
imger.draw (my_video);
imgShow._x = 29.4;
imgShow._y = 253.5;
imgShow.attachBitmap (imger, 1);
imger.draw (imageframe);
imgShow._x = 29.4;
imgShow._y = 253.5;
imgShow.attachBitmap (imger, 1);
thehang = 0;
statedisplay._visible = false;
blurbutton.enabled = true;
blurbutton._alpha = 100;
upfilebutton.enabled = true;
upfilebutton._alpha = 100;
statedisplay._visible = false;
}
function upload ()
{
_root.ID = setInterval (scanPhoto, 50);
}
//扫描图像
function scanPhoto ()
{
statedisplay._visible = true;
statedisplay.statebar.text = "正在扫描并上传图像数据请稍等";
var pixer:String;
PX[thehang] = new Array ();
for (w = 0; w < imgShow._width; w++) {
pixer = imger.getPixel (w, thehang).toString (16);
PX[thehang].push (pixer);
state.text = "正在扫描图像,过程较慢请耐心等待……";
}
thehang += 1;
//state.text ="正在存取数据";
if (thehang >= imgShow._height) {
clearInterval (_root.ID);
//state.text ="图像扫描完成,如果要保存请点“上传”按钮";
//blurbutton.enabled =true;
//blurbutton._alpha =100;
//upfilebutton.enabled =true;
//upfilebutton._alpha =100;
statedisplay._visible = false;
upfile ();
}
}
//上传图像
function upfile ()
{
statedisplay._visible = true;
statedisplay.statebar.text = "正在上传图像数据请稍等";
blurbutton.enabled = false;
blurbutton._alpha = 50;
upfilebutton.enabled = false;
upfilebutton._alpha = 50;
viewbutton.enabled = false;
viewbutton._alpha = 50;
var sender = new LoadVars ();
for (i = 0; i < my_video._height; i++) {
sender["PX" + i] = _root.PX[i];
}
sender.sendAndLoad ("Cam.aspx", sender, "POST");
sender.onLoad = function (success)
{
if (success) {
//state.text ="上传完成“" + this.thisfile + "”";
state.text = "上传完成";
filename = this.thisfile;
} else {
state.text = "上传失败";
}
upfilebutton.enabled = true;
upfilebutton._alpha = 100;
blurbutton.enabled = true;
blurbutton._alpha = 100;
viewbutton.enabled = true;
viewbutton._alpha = 100;
statedisplay._visible = false;
};
}
//浏览图片
function viewimg ()
{
d = new Date ();
getURL (filename, "_self");
}
asp.net 处理程序
System.Text.StringBuilder sb=new System.Text.StringBuilder ();
for(int i=0;i<Request.Form.Count ;i++)
{
if(Request.Form[i].ToString().Length==12)
{
sb.Append(Request.Form[i].ToString().Substring(0,6));
sb.Append(",");
sb.Append(Request.Form[i].ToString().Substring(7));
}
else
{
sb.Append(Request.Form[i].ToString());
}
sb.Append(",");
}
string b=sb.ToString();
string[] sarr=b.Split(",".ToCharArray());
System.Drawing.Bitmap bitmap=new Bitmap(160,120);
int z=0;
for(int y=119;y>=0;y--)
{
for(int x=0;x<160;x++)
{
try
{
if(z<sarr.Length )
{
System.Drawing.Color c=System.Drawing.Color.FromArgb(System.Convert.ToInt32(sarr[z],16));
bitmap.SetPixel(x,y,c);
}
}
catch
{
}
z=z+1;
}
}
string filename=System.Guid.NewGuid().ToString()+".jpg";
string bigdir=Server.MapPath("./") + "/images/";
if(!System.IO.Directory.Exists(bigdir))
{
Scripting.FileSystemObjectClass fso=new Scripting.FileSystemObjectClass ();
fso.CreateFolder(bigdir);
}
bitmap.Save(bigdir+"/"+filename,System.Drawing.Imaging.ImageFormat.Jpeg);