今天多喝了几杯酒,现在头有点晕晕的感觉,但我以前写的东西记录下来的意识还是有的,因为工作忙,早在一个月前写的东西今天才去总结,确实有点凉菜现用的感觉!但还是要写些东西出来的,哪怕只有自己知道也行。多说不宜,就直接把重要的代码给贴出来行了。
 首先要说,这里是一台客户端电脑上实用的是两个摄像头,获取不同的摄像头方法如下
import it.sephiroth.mloaderWindow
import it.sephiroth.PrintScreen

myCam 
= Camera.get();   //可以根据参数获取不同的Camera对象,0和1
myCam.setMode(16012010);
my_video.attachVideo(myCam);
var loader:mloaderWindow 
= this.createClassObject(mloaderWindow, "loader"10{_x:-1000, _y:-1000})
//loader.setStyle("borderColor", 0x006699)

var listener:Object 
= new Object();


listener.onProgress 
= function(target:MovieClip, loaded:Number, total:Number){
    var perc 
= Math.round((loaded/total)*100)
    loader.label 
= "Sending " + perc + "%"
    loader.value 
= perc
}


listener.onComplete 
= function(target:MovieClip, load_var:LoadVars){
    loader.label 
= "Sending"
//获取图片的对象,我们实用的是apsx对象来获取的
    load_var.send("makepic.php""_self""POST")
    loader.close()
}



function print_me()
{
    var mc_x 
= 15;
    var mc_y 
= 15;
    my_video.attachVideo(
null);
    pn 
= new PrintScreen();    
    pn.addListener( listener );    
    pn.print(_root, 
00250120, mc_x, mc_y)    
    loader.label 
= "输出中 0%"
    loader.open(
truetruetrue);    


呵呵,到这里就剩下的是怎样获取图片了,当然我们得到的资料是实用php获取的,不过我是一个php盲,就斗胆的使用了aspx来获取了,代码如下(为了节省时间,我就全贴了)
 
 
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing.Text;

public partial class GetPhoto : System.Web.UI.Page
{
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!Page.IsPostBack)
        
{
            
if (Request.Form["width"]!=null)
            
{
                CreateImage(
"/");
            }

        }


    }

    
private bool CreateImage(string Path)
    
{

        
int w = 0;
        
int h = 0;

        
try
        
{
            w 
= int.Parse(Request.Form["width"]);
            h 
= int.Parse(Request.Form["height"]);
        }

        
catch (Exception ee)
        
{
            Response.Write(ee.Message);
            
return false;
        }


        Bitmap newmap 
= new Bitmap(w, h);
        
int rows = 0;
        
int cols = 0;

        Graphics gp 
= Graphics.FromImage(newmap);
        gp.Clear(Color.White);
        ImageCodecInfo myImageCodecInfo;
        System.Drawing.Imaging.Encoder myEncoder;
        EncoderParameter myEncoderParameter;
        EncoderParameters myEncoderParameters;
        myImageCodecInfo 
= ImageCodecInfo.GetImageEncoders()[1];
        myEncoder 
= System.Drawing.Imaging.Encoder.Quality;
        myEncoderParameters 
= new EncoderParameters(1);
        myEncoderParameter 
= new EncoderParameter(myEncoder, 95L);
        myEncoderParameters.Param[
0= myEncoderParameter;

        gp.CompositingQuality 
= CompositingQuality.HighQuality;
        gp.SmoothingMode 
= SmoothingMode.HighQuality;
        gp.InterpolationMode 
= InterpolationMode.HighQualityBicubic;
        gp.TextRenderingHint 
= TextRenderingHint.ClearTypeGridFit;
        
for (rows = 0; rows < newmap.Height; rows++//循环图片高度
        {
            
string px = Request["PX" + rows];
            
string[] c_row = px.Split(',');
            
for (cols = 0; cols < newmap.Width; cols++//循环图片宽度
            {

                
string values = c_row[cols];
                
if (values != "" && values != null)
                
{
                    
string hex = values;
                    
while (hex.Length < 6)
                    
{//防止颜色丢失
                        hex = "0" + hex;
                    }


                    
int r = int.Parse(hex.Substring(02), System.Globalization.NumberStyles.HexNumber);
                    
int g = int.Parse(hex.Substring(22), System.Globalization.NumberStyles.HexNumber);
                    
int b = int.Parse(hex.Substring(42), System.Globalization.NumberStyles.HexNumber);

                    newmap.SetPixel(cols, rows, Color.FromArgb(r, g, b));

                }

            }

        }


        gp.DrawImage(newmap, 
00, w, h);
        Path 
= Server.MapPath("Photo/")+"tmpPhoto.jpg";
        
//保存路径,修改这里
        newmap.Save(Path, myImageCodecInfo, myEncoderParameters);
        myEncoderParameters.Dispose();
        gp.Dispose();
        newmap.Dispose();
        
string strPicUrl = "Photo/tmpPhoto.jpg";
        Response.Redirect(
"CatchPhoto.aspx?imgUrl="+Server.UrlEncode(strPicUrl));
        
return true;
    }
 

}

好了,只要我们在指定的文件夹内获取现成的图片就可以,怎样实现我记得也不太清楚了,我就把所有的代码给上传了算了
行了,睡觉
需要原码mail me Stavon@126.com

posted on 2008-06-27 21:50  ☆^寶々貝^☆  阅读(505)  评论(6编辑  收藏  举报