我虽然不知道Flash根据什么来生成GIF,但有一点可以肯定的是他先取到整个影片或者局部的像素内容。然后根据GIF文件的结构生成即可。
有兴趣的话那你可以了解一下GIF的文件结构了。然后根据Flash提供的BitmapData类获取位图数据,然后在生成GIF文件。不过仅限于ActionScript3(FlashPlayer100以上)或AIR。好像也见过有第三方库可以实现,你可以网上找找。
另外,站长团上有产品团购,便宜有保证
这是我以前写的:
C#的:
private void btnUpload_Click(object sender, SystemEventArgs e)
{
//得到用户要上传的文件名
string strFilePathName = loFilePostedFileFileName;
string strFileName = PathGetFileName(strFilePathName);
int FileLength = loFilePostedFileContentLength;
if(FileLength<=0)
return;
try
{//上传文件
Byte[] FileByteArray = new Byte[FileLength]; //图象文件临时储存Byte数组
Stream StreamObject = loFilePostedFileInputStream; //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObjectRead(FileByteArray,0,FileLength);
//建立SQL Server链接
string strCon = SystemConfigurationConfigurationSettingsAppSettings["DSN"];
SqlConnection Con = new SqlConnection(strCon);
String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObjParametersAdd("@Image",SqlDbTypeBinary, FileLength)Value = FileByteArray;
CmdObjParametersAdd("@ContentType", SqlDbTypeVarChar,50)Value = loFilePostedFileContentType; //记录文件类型
//把其它单表数据记录上传
CmdObjParametersAdd("@ImageDescription", SqlDbTypeVarChar,200)Value = tbDescriptionText;
//记录文件长度,读取时使用
CmdObjParametersAdd("@ImageSize", SqlDbTypeBigInt,8)Value = FileLength;
ConOpen();
CmdObjExecuteNonQuery();
ConClose();
//跳转页面
ResponseRedirect("ShowAllaspx");
}
catch
{
}
}
2DataGrid控件绑定数据
程序代码
private void Page_Load(object sender, SystemEventArgs e)
{
string strCon = SystemConfigurationConfigurationSettingsAppSettings["DSN"];
SqlConnection con = new SqlConnection(strCon);
SqlDataAdapter da = new SqlDataAdapter("Select from ImageStore",con);
DataSet ds = new DataSet();
daFill(ds,"image");
dgShowDataSource = dsTables["image"]DefaultView;
dgShowDataBind();
}
3显示数据库数据
程序代码
private void Page_Load(object sender, SystemEventArgs e)
{
int ImgID = ConvertToInt32(RequestQueryString["ID"]); //ID为ID
//建立数据库链接
string strCon = SystemConfigurationConfigurationSettingsAppSettings["DSN"];
SqlConnection Con = new SqlConnection(strCon);
String SqlCmd = "SELECT FROM ImageStore WHERE ImageID = @ImageID";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObjParametersAdd("@ImageID", SqlDbTypeInt)Value = ImgID;
ConOpen();
SqlDataReader SqlReader = CmdObjExecuteReader();
SqlReaderRead();
ResponseContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
//输出图象文件二进制数制
ResponseOutputStreamWrite((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
ResponseEnd();
//也可以保存为图像
// FileStream fs = new FileStream(@"C:\aaBMP", FileModeOpenOrCreate, FileAccessWrite);
// fsWrite((byte[])SqlReader["ImageData"], 0,(int)SqlReader["ImageSize"]);
// fsClose();
ConClose();
}
asp的:
ASP存入数据库源程序
写到数据库:<%
responsebuffer=true
formsize=requesttotalbytes
formdata=requestbinaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
Dim Conn
Set Conn=ServerCreateObject("adodbconnection")
ConnOpen strConn
set rec=servercreateobject("ADODBrecordset")
recOpen "SELECT FROM images order by id desc",Conn,1,3
recaddnew
rec("images")appendchunk mydata
recupdate
recclose
set rec=nothing
set connGraph=nothing
%>
从数据库读:
<%
Dim Conn
Set Conn=ServerCreateObject("adodbconnection")
ConnOpen strConn
set rec=servercreateobject("ADODBrecordset")
strsql="select images from images where id=" & trim(request("id"))
recopen strsql,Conn,1,1
ResponseContentType = "img/"
ResponseBinaryWrite rec("images")getChunk(7500000)
%>
注:存数据库是以二进制存的,在读写时文本和只能分开保存。
以上就是关于.net + flash 生成图片全部的内容,包括:.net + flash 生成图片、C# 二进制字节流转图片、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)