日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

ASP.NET2.0打通文件图片处理任督二脉【月儿原创】

發(fā)布時(shí)間:2023/11/27 生活经验 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET2.0打通文件图片处理任督二脉【月儿原创】 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

ASP.NET2.0打通文件圖片處理任督二脈

作者:清清月兒

主頁(yè):http://blog.csdn.net/21aspnet/?????????? 時(shí)間:2007.4.1

1.最簡(jiǎn)單的單文件上傳(沒(méi)花頭)
2.多文件上傳
3.客戶端檢查上傳文件類型(以上傳圖片為例)
4.服務(wù)器端檢查上傳文件類型(以上傳圖片為例)

5.服務(wù)器端檢查上傳文件類型(可以檢測(cè)真正文件名)
6.上傳文件文件名唯一性處理(時(shí)間戳+SessionID)
7.上傳圖片生成等比例縮略圖
8.上傳圖片加水印(文字水印,圖片水印,文字+圖片水印)
9.

1.最簡(jiǎn)單的單文件上傳(沒(méi)花頭)

效果圖:

說(shuō)明:這是最基本的文件上傳,在asp.net1.x中沒(méi)有這個(gè)FileUpload控件,只有html的上傳控件,那時(shí)候要把html控件轉(zhuǎn)化為服務(wù)器控件,很不好用。其實(shí)所有文件上傳的美麗效果都是從這個(gè)FileUpload控件衍生,第一個(gè)例子雖然簡(jiǎn)單卻是根本。

后臺(tái)代碼
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;

public partial class _Default : System.Web.UI.Page
{
??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????? string serverpath = Server.MapPath("images/") + filename;
??????????????? FileUpload1.PostedFile.SaveAs(serverpath);
??????????????? this.lb_info.Text = "上傳成功!";
??????????? }
??????? }
??????? catch (Exception ex)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因是:" + ex.ToString();
??????? }
??? }
}

前臺(tái)代碼:
?<table style="width: 343px">
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? 單文件上傳</td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? <asp:FileUpload ID="FileUpload1" runat="server" Width="475px" />
??????????????????? </td>
??????????????? <td style="width: 100px">
??????????????????? <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="上傳" /></td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px; height: 21px;">
??????????????????? <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
??????????????? <td style="width: 100px; height: 21px">
??????????????? </td>
??????????? </tr>
??????? </table>

2.多文件上傳

效果圖:

后臺(tái)代碼:
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;

public partial class _Default : System.Web.UI.Page
{
??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
???????
??????????? if ((FileUpload1.PostedFile.FileName == "" && FileUpload2.PostedFile.FileName == "")&&FileUpload3.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? HttpFileCollection myfiles = Request.Files;
??????????????? for (int i = 0; i < myfiles.Count; i++)
??????????????? {
??????????????????? HttpPostedFile mypost = myfiles[i];
??????????????????? try
??????????????????? {
??????????????????????? if (mypost.ContentLength > 0)
??????????????????????? {
???????????????????????????? string filepath = mypost.FileName;
???????????????????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
???????????????????????????? string serverpath = Server.MapPath("images/") + filename;
???????????????????????????? mypost.SaveAs(serverpath);
???????????????????????????? this.lb_info.Text = "上傳成功!";
??????????????????????? }
??????????????????? }
??????????????????? catch (Exception error)
??????????????????? {
??????????????????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????????????????? }

??????????????? }
??????????????
??????????? }
??????? }
??????
??? }

前臺(tái)代碼:
?<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
??? <title>多文件上傳 清清月兒http://blog.csdn.net/21aspnet/</title>
</head>
<body>
??? <form id="form1" runat="server">
??? <div>
??????? <table style="width: 343px">
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? 多文件上傳</td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? <asp:FileUpload ID="FileUpload1" runat="server" Width="475px" />
??????????????????? </td>
??????????????? <td style="width: 100px">
??????????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? <asp:FileUpload ID="FileUpload2" runat="server" Width="475px" /></td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? <asp:FileUpload ID="FileUpload3" runat="server" Width="475px" /></td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 100px">
??????????????????? <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="一起上傳" />
??????????????????? <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????? </table>
???
??? </div>
??? </form>
</body>
</html>

3.客戶端檢查上傳文件類型(以上傳圖片為例)

效果圖:

后臺(tái)代碼和1.最簡(jiǎn)單的單文件上傳一樣;
前臺(tái)代碼
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
??? <title>清清月兒 http://blog.csdn.net/21aspnet</title>
<script?? language="javascript">?
?function Check_FileType()
{
var str=document.getElementById("FileUpload1").value;
?var pos = str.lastIndexOf(".");
?var lastname = str.substring(pos,str.length)?
?if (lastname.toLowerCase()!=".jpg" && lastname.toLowerCase()!=".gif")
?{
???? alert("您上傳的文件類型為"+lastname+",圖片必須為.jpg,.gif類型");
???? return false;
?}
?else
?{
? return true;
?}
}
?</script>
?

</head>
<body>
??? <form id="form1" runat="server">
??? <div>
??????? <table style="width: 343px">
??????????? <tr>
??????????????? <td style="width: 104px">
??????????????????? 文件上傳判斷</td>
??????????????? <td style="width: 100px">
??????????????? </td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 104px">
??????????????????? <asp:FileUpload ID="FileUpload1" runat="server" Width="400px" />
??????????????????? </td>
??????????????? <td style="width: 100px">
??????????????????? <asp:Button ID="bt_upload" runat="server" OnClick="bt_upload_Click" Text="上傳"? OnClientClick="return Check_FileType()"/></td>
??????????? </tr>
??????????? <tr>
??????????????? <td style="width: 104px; height: 21px;">
??????????????????? <asp:Label ID="lb_info" runat="server" ForeColor="Red" Width="183px"></asp:Label></td>
??????????????? <td style="width: 100px; height: 21px">
??????????????? </td>
??????????? </tr>
??????? </table>
???
??? </div>
??? </form>
</body>
</html>
說(shuō)明:點(diǎn)擊上傳時(shí)先觸發(fā)客戶端事件Check_FileType;

4.服務(wù)器端檢查上傳文件類型(以上傳圖片為例)

效果圖:

后臺(tái)代碼:
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;

public partial class _Default : System.Web.UI.Page
{
??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? if (IsAllowedExtension(FileUpload1) == true)
??????????????? {

??????????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????????? string serverpath = Server.MapPath("images/") + filename;
??????????????????? FileUpload1.PostedFile.SaveAs(serverpath);
??????????????????? this.lb_info.Text = "上傳成功!";
??????????????? }
??????????????? else
??????????????? {
??????????????????? this.lb_info.Text = "請(qǐng)上傳圖片";
??????????????? }
??????????? }
??????? }
??????? catch (Exception error)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????? }
??? }
???public static bool IsAllowedExtension(FileUpload hifile)
??? {
??????? string strOldFilePath = "", strExtension = "";
??????? string[] arrExtension =?? { ".gif", ".jpg", ".jpeg", ".bmp", ".png" };
??????? if (hifile.PostedFile.FileName != string.Empty)
??????? {
??????????? strOldFilePath = hifile.PostedFile.FileName;
??????????? strExtension = strOldFilePath.Substring(strOldFilePath.LastIndexOf("."));
??????????? for (int i = 0; i < arrExtension.Length; i++)
??????????? {
??????????????? if (strExtension.Equals(arrExtension[i]))
??????????????? {
??????????????????? return true;
??????????????? }
??????????? }
??????? }
??????? return false;
??? }??

}

?5.服務(wù)器端檢查上傳文件類型(可以檢測(cè)真正文件名)
其實(shí)方法4并不好,因?yàn)橛脩艨梢园裍XX.txt偽裝為XXX.jpg。

效果圖:

后臺(tái)代碼:
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;

public partial class _Default : System.Web.UI.Page
{
??? //清清月兒 http://blog.csdn.net/21aspnet
??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? if (IsAllowedExtension(FileUpload1) == true)
??????????????? {
??????????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????????? string serverpath = Server.MapPath("images/") + filename;
??????????????????? FileUpload1.PostedFile.SaveAs(serverpath);
??????????????????? this.lb_info.Text = "上傳成功!";
??????????????? }
??????????????? else
??????????????? {
??????????????????? this.lb_info.Text = "請(qǐng)上傳圖片";
??????????????? }
??????????? }
??????? }
??????? catch (Exception error)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????? }
??? }
??? public static bool IsAllowedExtension(FileUpload hifile)
??? {
??????? System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
??????? System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
??????? string fileclass = "";
??????? byte buffer;
??????? try
??????? {
??????????? buffer = r.ReadByte();
??????????? fileclass = buffer.ToString();
??????????? buffer = r.ReadByte();
??????????? fileclass += buffer.ToString();

??????? }
??????? catch
??????? {
??????????
??????? }
??????? r.Close();
??????? fs.Close();
??????? if (fileclass == "255216" || fileclass == "7173")//說(shuō)明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
??????? {
??????????? return true;
??????? }
??????? else
??????? {
??????????? return false;
??????? }

??? }??

}

6.上傳文件文件名唯一性處理(時(shí)間戳+SessionID)

效果圖:

說(shuō)明:年月日時(shí)分秒+臨時(shí)session+原文件名 如果大家怕還會(huì)重復(fù)可以加GUID
后臺(tái)代碼:

try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????? string serverpath = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename;
??????????????? FileUpload1.PostedFile.SaveAs(serverpath);
??????????????? this.lb_info.Text = "上傳成功!";
??????????? }
??????? }
??????? catch (Exception error)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????? }

注:GUID的方法:Guid myGuid=Guid.NewGuid();

7.上傳圖片生成等比例縮略圖

效果圖:

縮略圖代碼:
ImageThumbnail.cs

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;

public class ImageThumbnail
{
??? public Image ResourceImage;
??? private int ImageWidth;
??? private int ImageHeight;
??? public string ErrorMessage;

??? public ImageThumbnail(string ImageFileName)
??? {
??????? ResourceImage = Image.FromFile(ImageFileName);
??????? ErrorMessage = "";
??? }

??? public bool ThumbnailCallback()
??? {
??????? return false;
??? }


??? // 方法1,按大小
??? public bool ReducedImage(int Width, int Height, string targetFilePath)
??? {
??????? try
??????? {
??????????? Image ReducedImage;
??????????? Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
??????????? ReducedImage = ResourceImage.GetThumbnailImage(Width, Height, callb, IntPtr.Zero);
??????????? ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
??????????? ReducedImage.Dispose();
??????????? return true;
??????? }
??????? catch (Exception e)
??????? {
??????????? ErrorMessage = e.Message;
??????????? return false;
??????? }
??? }


??? // 方法2,按百分比? 縮小60% Percent為0.6 targetFilePath為目標(biāo)路徑
??? public bool ReducedImage(double Percent, string targetFilePath)
??? {
??????? try
??????? {
??????????? Image ReducedImage;
??????????? Image.GetThumbnailImageAbort callb = new Image.GetThumbnailImageAbort(ThumbnailCallback);
??????????? ImageWidth = Convert.ToInt32(ResourceImage.Width * Percent);
??????????? ImageHeight = (ResourceImage.Height)*ImageWidth/ ResourceImage.Width;//等比例縮放
??????????? ReducedImage = ResourceImage.GetThumbnailImage(ImageWidth, ImageHeight, callb, IntPtr.Zero);
??????????? ReducedImage.Save(@targetFilePath, ImageFormat.Jpeg);
??????????? ReducedImage.Dispose();
??????????? return true;
??????? }
??????? catch (Exception e)
??????? {
??????????? ErrorMessage = e.Message;
??????????? return false;
??????? }
??? }


}

后臺(tái)代碼:
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;
public partial class _Default : System.Web.UI.Page
{

??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????? string serverpath1 = Server.MapPath("images/") + filename;
??????????????? string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename;
??????????????? FileUpload1.PostedFile.SaveAs(serverpath1);
??????????????? ImageThumbnail img = new ImageThumbnail(filepath);
??????????????? img.ReducedImage(0.4, serverpath2);//0.4表示縮小40%
??????????????? this.lb_info.Text = "上傳成功!";
??????????? }
??????? }
??????? catch (Exception error)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????? }
??? }


}

8.上傳圖片加水印(文字水印,圖片水印,文字+圖片水印)

效果圖:
原圖

水印

給圖片加水印以后(注意右上角+正下方)

代碼:
DrawImg.cs? 出自http://www.codeproject.com/csharp/watermark.asp
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
public class DrawImg
{
?private string? WorkingDirectory = string.Empty ; //路徑
?private string? ImageName = string.Empty;?? //被處理的圖片
?private string? ImageWater = string.Empty;? //水印圖片
?private string? FontString = string.Empty;? //水印文字
?

?enum DealType{NONE,WaterImage,WaterFont,DoubleDo}; //枚舉命令

?private DealType dealtype;
?

?public DrawImg()
?{}

?public string PublicWorkingDirectory
?{
??get
??{
???return WorkingDirectory;
??}
??set
??{
???WorkingDirectory = value;
??}
?}

?public string PublicImageName
?{
??get
??{
???return ImageName;
??}
??set
??{
???ImageName = value;
??}
?}


?public string PublicImageWater
?{
??get
??{
???return ImageWater;
??}
??set? //設(shè)置了水印圖片的話說(shuō)明是要水印圖片效果的
??{
???dealtype = DealType.WaterImage;
???ImageWater = value;
??}
?}

?public string PublicFontString
?{
??get
??{
???return FontString;
??}
??set //設(shè)置了水印文字的話說(shuō)明是要水印文字效果的
??{
???dealtype = DealType.WaterFont;
???FontString = value;
??}
?}

?

?public void DealImage()
?{
??IsDouble();

??switch( dealtype )
??{
???case DealType.WaterFont: WriteFont(); break;
???case DealType.WaterImage: WriteImg(); break;
???case DealType.DoubleDo: WriteFontAndImg(); break;
??}

?}

?private void IsDouble()
?{
??if(ImageWater+""!="" && FontString+""!="")
??{
??????????? dealtype = DealType.DoubleDo;
??}
?}

?private void WriteFont()
?{
??//set a working directory
??//string WorkingDirectory = @"C:/Watermark_src/WaterPic";

??//define a string of text to use as the Copyright message
??//string Copyright = "Copyright ?2002 - AP Photo/David Zalubowski";

??//create a image object containing the photograph to watermark
??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName);
??int phWidth = imgPhoto.Width;
??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph
??Bitmap bmPhoto = new Bitmap(phWidth, phHeight, PixelFormat.Format24bppRgb);

??bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object
??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//------------------------------------------------------------
??//Step #1 - Insert Copyright message
??//------------------------------------------------------------

??//Set the rendering quality for this Graphics object
??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object.
??grPhoto.DrawImage(
???imgPhoto,?????????????????????????????? // Photo Image object
???new Rectangle(0, 0, phWidth, phHeight), // Rectangle structure
???0,????????????????????????????????????? // x-coordinate of the portion of the source image to draw.
???0,????????????????????????????????????? // y-coordinate of the portion of the source image to draw.
???phWidth,??????????????????????????????? // Width of the portion of the source image to draw.
???phHeight,?????????????????????????????? // Height of the portion of the source image to draw.
???GraphicsUnit.Pixel);??????????????????? // Units of measure

??//-------------------------------------------------------
??//to maximize the size of the Copyright message we will
??//test multiple Font sizes to determine the largest posible
??//font we can use for the width of the Photograph
??//define an array of point sizes you would like to consider as possiblities
??//-------------------------------------------------------
??int[] sizes = new int[]{16,14,12,10,8,6,4};

??Font crFont = null;
??SizeF crSize = new SizeF();

??//Loop through the defined sizes checking the length of the Copyright string
??//If its length in pixles is less then the image width choose this Font size.
??for (int i=0 ;i<7; i++)
??{
???//set a Font object to Arial (i)pt, Bold
???//crFont = new Font("arial", sizes[i], FontStyle.Bold);

???crFont = new Font("arial",sizes[i],FontStyle.Bold);

???//Measure the Copyright string in this Font
???crSize = grPhoto.MeasureString(FontString, crFont);

???if((ushort)crSize.Width < (ushort)phWidth)
????break;
??}

??//Since all photographs will have varying heights, determine a
??//position 5% from the bottom of the image
??int yPixlesFromBottom = (int)(phHeight *.05);

??//Now that we have a point size use the Copyrights string height
??//to determine a y-coordinate to draw the string of the photograph
??float yPosFromBottom = ((phHeight - yPixlesFromBottom)-(crSize.Height/2));

??//Determine its x-coordinate by calculating the center of the width of the image
??float xCenterOfImg = (phWidth/2);

??//Define the text layout by setting the text alignment to centered
??StringFormat StrFormat = new StringFormat();
??StrFormat.Alignment = StringAlignment.Center;

??//define a Brush which is semi trasparent black (Alpha set to 153)
??SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0, 0));

??//Draw the Copyright string
??grPhoto.DrawString(FontString,???????????????? //string of text
???crFont,?????????????????????????????????? //font
???semiTransBrush2,?????????????????????????? //Brush
???new PointF(xCenterOfImg+1,yPosFromBottom+1),? //Position
???StrFormat);

??//define a Brush which is semi trasparent white (Alpha set to 153)
??SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255));

??//Draw the Copyright string a second time to create a shadow effect
??//Make sure to move this text 1 pixel to the right and down 1 pixel
??grPhoto.DrawString(FontString,???????????????? //string of text
???crFont,?????????????????????????????????? //font
???semiTransBrush,?????????????????????????? //Brush
???new PointF(xCenterOfImg,yPosFromBottom),? //Position
???StrFormat);???
??
??imgPhoto = bmPhoto;
??grPhoto.Dispose();

??//save new image to file system.
??imgPhoto.Save(WorkingDirectory + ImageName + "_finally.jpg", ImageFormat.Jpeg);
??imgPhoto.Dispose();
??
??//Text alignment
?}


?private void WriteImg()
?{
??//set a working directory
??//string WorkingDirectory = @"C:/Watermark_src/WaterPic";

??//create a image object containing the photograph to watermark
??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName);
??int phWidth = imgPhoto.Width;
??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph
??Bitmap bmPhoto = new Bitmap(phWidth, phHeight, PixelFormat.Format24bppRgb);

??bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object
??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//create a image object containing the watermark
??Image imgWatermark = new Bitmap(WorkingDirectory + ImageWater);
??int wmWidth = imgWatermark.Width;
??int wmHeight = imgWatermark.Height;

??//Set the rendering quality for this Graphics object
??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object.
??grPhoto.DrawImage(
???imgPhoto,?????????????????????????????? // Photo Image object
???new Rectangle(0, 0, phWidth, phHeight), // Rectangle structure
???0,????????????????????????????????????? // x-coordinate of the portion of the source image to draw.
???0,????????????????????????????????????? // y-coordinate of the portion of the source image to draw.
???phWidth,??????????????????????????????? // Width of the portion of the source image to draw.
???phHeight,?????????????????????????????? // Height of the portion of the source image to draw.
???GraphicsUnit.Pixel);??????????????????? // Units of measure


??//------------------------------------------------------------
??//Step #2 - Insert Watermark image
??//------------------------------------------------------------

??//Create a Bitmap based on the previously modified photograph Bitmap
??Bitmap bmWatermark = new Bitmap(bmPhoto);
??bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
??//Load this Bitmap into a new Graphic Object
??Graphics grWatermark = Graphics.FromImage(bmWatermark);

??//To achieve a transulcent watermark we will apply (2) color
??//manipulations by defineing a ImageAttributes object and
??//seting (2) of its properties.
??ImageAttributes imageAttributes = new ImageAttributes();

??//The first step in manipulating the watermark image is to replace
??//the background color with one that is trasparent (Alpha=0, R=0, G=0, B=0)
??//to do this we will use a Colormap and use this to define a RemapTable
??ColorMap colorMap = new ColorMap();

??//My watermark was defined with a background of 100% Green this will
??//be the color we search for and replace with transparency
??colorMap.OldColor = Color.FromArgb(255, 0, 255, 0);
??colorMap.NewColor = Color.FromArgb(0, 0, 0, 0);

??ColorMap[] remapTable = {colorMap};

??imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap);

??//The second color manipulation is used to change the opacity of the
??//watermark.? This is done by applying a 5x5 matrix that contains the
??//coordinates for the RGBA space.? By setting the 3rd row and 3rd column
??//to 0.3f we achive a level of opacity
??float[][] colorMatrixElements = {
???????????new float[] {1.0f,? 0.0f,? 0.0f,? 0.0f, 0.0f},??????
???????????new float[] {0.0f,? 1.0f,? 0.0f,? 0.0f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 1.0f,? 0.0f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 0.0f,? 0.3f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 0.0f,? 0.0f, 1.0f}};
??ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements);

??imageAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default,
???ColorAdjustType.Bitmap);

??//For this example we will place the watermark in the upper right
??//hand corner of the photograph. offset down 10 pixels and to the
??//left 10 pixles

??int xPosOfWm = ((phWidth - wmWidth)-10);
??int yPosOfWm = 10;

??grWatermark.DrawImage(imgWatermark,
???new Rectangle(xPosOfWm,yPosOfWm,wmWidth,wmHeight),? //Set the detination Position
???0,????????????????? // x-coordinate of the portion of the source image to draw.
???0,????????????????? // y-coordinate of the portion of the source image to draw.
???wmWidth,??????????? // Watermark Width
???wmHeight,????? // Watermark Height
???GraphicsUnit.Pixel, // Unit of measurment
???imageAttributes);?? //ImageAttributes Object

??//Replace the original photgraphs bitmap with the new Bitmap
??imgPhoto = bmWatermark;
??grPhoto.Dispose();
??grWatermark.Dispose();

??//save new image to file system.
??imgPhoto.Save(WorkingDirectory + ImageName +"_finally.jpg", ImageFormat.Jpeg);
??imgPhoto.Dispose();
??imgWatermark.Dispose();

?}


?private void WriteFontAndImg()
?{??
??
??//create a image object containing the photograph to watermark
??Image imgPhoto = Image.FromFile(WorkingDirectory + ImageName);
??int phWidth = imgPhoto.Width;
??int phHeight = imgPhoto.Height;

??//create a Bitmap the Size of the original photograph
??Bitmap bmPhoto = new Bitmap(phWidth, phHeight, PixelFormat.Format24bppRgb);

??bmPhoto.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);

??//load the Bitmap into a Graphics object
??Graphics grPhoto = Graphics.FromImage(bmPhoto);

??//create a image object containing the watermark
??Image imgWatermark = new Bitmap(WorkingDirectory + ImageWater);
??int wmWidth = imgWatermark.Width;
??int wmHeight = imgWatermark.Height;

??//------------------------------------------------------------
??//Step #1 - Insert Copyright message
??//------------------------------------------------------------

??//Set the rendering quality for this Graphics object
??grPhoto.SmoothingMode = SmoothingMode.AntiAlias;

??//Draws the photo Image object at original size to the graphics object.
??grPhoto.DrawImage(
???imgPhoto,?????????????????????????????? // Photo Image object
???new Rectangle(0, 0, phWidth, phHeight), // Rectangle structure
???0,????????????????????????????????????? // x-coordinate of the portion of the source image to draw.
???0,????????????????????????????????????? // y-coordinate of the portion of the source image to draw.
???phWidth,??????????????????????????????? // Width of the portion of the source image to draw.
???phHeight,?????????????????????????????? // Height of the portion of the source image to draw.
???GraphicsUnit.Pixel);??????????????????? // Units of measure

??//-------------------------------------------------------
??//to maximize the size of the Copyright message we will
??//test multiple Font sizes to determine the largest posible
??//font we can use for the width of the Photograph
??//define an array of point sizes you would like to consider as possiblities
??//-------------------------------------------------------
??int[] sizes = new int[]{16,14,12,10,8,6,4};

??Font crFont = null;
??SizeF crSize = new SizeF();

??//Loop through the defined sizes checking the length of the Copyright string
??//If its length in pixles is less then the image width choose this Font size.
??for (int i=0 ;i<7; i++)
??{
???//set a Font object to Arial (i)pt, Bold
???crFont = new Font("arial", sizes[i], FontStyle.Bold);
???//Measure the Copyright string in this Font
???crSize = grPhoto.MeasureString(FontString, crFont);

???if((ushort)crSize.Width < (ushort)phWidth)
????break;
??}

??//Since all photographs will have varying heights, determine a
??//position 5% from the bottom of the image
??int yPixlesFromBottom = (int)(phHeight *.05);

??//Now that we have a point size use the Copyrights string height
??//to determine a y-coordinate to draw the string of the photograph
??float yPosFromBottom = ((phHeight - yPixlesFromBottom)-(crSize.Height/2));

??//Determine its x-coordinate by calculating the center of the width of the image
??float xCenterOfImg = (phWidth/2);

??//Define the text layout by setting the text alignment to centered
??StringFormat StrFormat = new StringFormat();
??StrFormat.Alignment = StringAlignment.Center;

??//define a Brush which is semi trasparent black (Alpha set to 153)
??SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0, 0));

??//Draw the Copyright string
??grPhoto.DrawString(FontString,???????????????? //string of text
???crFont,?????????????????????????????????? //font
???semiTransBrush2,?????????????????????????? //Brush
???new PointF(xCenterOfImg+1,yPosFromBottom+1),? //Position
???StrFormat);

??//define a Brush which is semi trasparent white (Alpha set to 153)
??SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255));

??//Draw the Copyright string a second time to create a shadow effect
??//Make sure to move this text 1 pixel to the right and down 1 pixel
??grPhoto.DrawString(FontString,???????????????? //string of text
???crFont,?????????????????????????????????? //font
???semiTransBrush,?????????????????????????? //Brush
???new PointF(xCenterOfImg,yPosFromBottom),? //Position
???StrFormat);?????????????????????????????? //Text alignment

???

??//------------------------------------------------------------
??//Step #2 - Insert Watermark image
??//------------------------------------------------------------

??//Create a Bitmap based on the previously modified photograph Bitmap
??Bitmap bmWatermark = new Bitmap(bmPhoto);
??bmWatermark.SetResolution(imgPhoto.HorizontalResolution, imgPhoto.VerticalResolution);
??//Load this Bitmap into a new Graphic Object
??Graphics grWatermark = Graphics.FromImage(bmWatermark);

??//To achieve a transulcent watermark we will apply (2) color
??//manipulations by defineing a ImageAttributes object and
??//seting (2) of its properties.
??ImageAttributes imageAttributes = new ImageAttributes();

??//The first step in manipulating the watermark image is to replace
??//the background color with one that is trasparent (Alpha=0, R=0, G=0, B=0)
??//to do this we will use a Colormap and use this to define a RemapTable
??ColorMap colorMap = new ColorMap();

??//My watermark was defined with a background of 100% Green this will
??//be the color we search for and replace with transparency
??colorMap.OldColor = Color.FromArgb(255, 0, 255, 0);
??colorMap.NewColor = Color.FromArgb(0, 0, 0, 0);

??ColorMap[] remapTable = {colorMap};

??imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap);

??//The second color manipulation is used to change the opacity of the
??//watermark.? This is done by applying a 5x5 matrix that contains the
??//coordinates for the RGBA space.? By setting the 3rd row and 3rd column
??//to 0.3f we achive a level of opacity
??float[][] colorMatrixElements = {
???????????new float[] {1.0f,? 0.0f,? 0.0f,? 0.0f, 0.0f},??????
???????????new float[] {0.0f,? 1.0f,? 0.0f,? 0.0f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 1.0f,? 0.0f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 0.0f,? 0.3f, 0.0f},???????
???????????new float[] {0.0f,? 0.0f,? 0.0f,? 0.0f, 1.0f}};
??ColorMatrix wmColorMatrix = new ColorMatrix(colorMatrixElements);

??imageAttributes.SetColorMatrix(wmColorMatrix, ColorMatrixFlag.Default,
???ColorAdjustType.Bitmap);

??//For this example we will place the watermark in the upper right
??//hand corner of the photograph. offset down 10 pixels and to the
??//left 10 pixles

??int xPosOfWm = ((phWidth - wmWidth)-10);
??int yPosOfWm = 10;

??grWatermark.DrawImage(imgWatermark,
???new Rectangle(xPosOfWm,yPosOfWm,wmWidth,wmHeight),? //Set the detination Position
???0,????????????????? // x-coordinate of the portion of the source image to draw.
???0,????????????????? // y-coordinate of the portion of the source image to draw.
???wmWidth,??????????? // Watermark Width
???wmHeight,????? // Watermark Height
???GraphicsUnit.Pixel, // Unit of measurment
???imageAttributes);?? //ImageAttributes Object

??//Replace the original photgraphs bitmap with the new Bitmap
??imgPhoto = bmWatermark;
??grPhoto.Dispose();
??grWatermark.Dispose();

??//save new image to file system.
??imgPhoto.Save(WorkingDirectory + ImageName +"_finally.jpg", ImageFormat.Jpeg);
??imgPhoto.Dispose();
??imgWatermark.Dispose();

???????
?}
}


?//水印圖片加水印文字
//???ReDrawImg img = new ReDrawImg();
//???img .PublicWorkingDirectory = @"C:/Watermark_src/WaterPic/";
//???img .PublicImageName = "watermark_photo.jpg";
//???img .PublicImageWater = "watermark.bmp";
//???img .PublicFontString = "清清月兒";
//???img .DealImage();?
??
???//水印文字
???ReDrawImg img = new ReDrawImg();
???img .PublicWorkingDirectory = @"C:/Watermark_src/WaterPic/";
???img .PublicImageName = "watermark_photo.jpg";???
???img .PublicFontString = @"清清月兒";
???img .DealImage();
?

???//水印圖片
//???ReDrawImg img = new ReDrawImg();
//???img .PublicWorkingDirectory = @"C:/Watermark_src/WaterPic/";
//???img .PublicImageName = "watermark_photo.jpg";
//???img .PublicImageWater = "watermark.bmp";???
//???img .DealImage();?
??
?
后臺(tái)代碼:

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;
public partial class _Default : System.Web.UI.Page
{

??? protected void Page_Load(object sender, EventArgs e)
??? {

??? }
??? protected void bt_upload_Click(object sender, EventArgs e)
??? {
??????? try
??????? {
??????????? if (FileUpload1.PostedFile.FileName == "")
??????????? {
??????????????? this.lb_info.Text = "請(qǐng)選擇文件!";
??????????? }
??????????? else
??????????? {
??????????????? string filepath = FileUpload1.PostedFile.FileName;
??????????????? string filename = filepath.Substring(filepath.LastIndexOf("//") + 1);
??????????????? string serverpath1 = Server.MapPath("images/") + filename;
??????????????? //string serverpath2 = Server.MapPath("images/") + System.DateTime.Now.ToString("yyy-MM-dd-hh-mm-ss") + Session.SessionID + filename;
??????????????? FileUpload1.PostedFile.SaveAs(serverpath1);
??????????????? //ImageThumbnail img = new ImageThumbnail(filepath);
??????????????? //img.ReducedImage(0.4, serverpath2);
??????????????? DrawImg img = new DrawImg();
??????????????? img.PublicWorkingDirectory = Server.MapPath("images/");
??????????????? img.PublicImageName = filename;
??????????????? img.PublicFontString = "http://blog.csdn.net/21aspnet";
??????????????? img.PublicImageWater = "yyy.jpg";
??????????????? img.DealImage();
??????????????? this.lb_info.Text = "上傳成功!";
??????????? }
??????? }
??????? catch (Exception error)
??????? {
??????????? this.lb_info.Text = "上傳發(fā)生錯(cuò)誤!原因:" + error.ToString();
??????? }
??? }


}

?此文未完,待續(xù)

總結(jié)

以上是生活随笔為你收集整理的ASP.NET2.0打通文件图片处理任督二脉【月儿原创】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

人人爱夜夜操 | 久久国产精品偷 | 高清精品久久 | 亚洲理论片在线观看 | 在线播放一区二区三区 | 成片免费观看视频大全 | 久久艹精品 | 国产v在线播放 | 国产综合视频在线观看 | 国产高清在线一区 | 不卡av在线免费观看 | 国产精品一区二区久久精品爱微奶 | 亚洲免费在线看 | 91人人插| 日韩在线视频不卡 | 国产亚洲精品美女久久 | 美女免费黄视频网站 | 日日婷婷夜日日天干 | 久久亚洲区 | 天天色宗合| 玖玖精品在线 | 成年人在线观看视频免费 | 色视频在线 | 国模吧一区| 中文字幕美女免费在线 | 91在线免费观看国产 | 国产精品国产三级国产专区53 | 99久久er热在这里只有精品15 | 亚洲自拍自偷 | 欧美二区三区91 | 免费精品在线 | 制服丝袜欧美 | 中文字幕永久免费 | av亚洲产国偷v产偷v自拍小说 | 99视频在线观看一区三区 | www.久久精品视频 | 99re久久精品国产 | 亚洲综合色站 | 成 人 黄 色 视频免费播放 | 美女免费黄网站 | 精品视频免费观看 | 久久免费成人网 | 丁香婷婷激情网 | 婷婷久久综合九色综合 | 亚洲精品国产精品国产 | 中文字幕资源站 | 久久五月婷婷丁香社区 | 黄色三级在线 | 国产无区一区二区三麻豆 | 免费视频18| 国产精品va最新国产精品视频 | 国产精品一区免费在线观看 | 天天爱天天草 | 日韩一区二区三区高清在线观看 | 毛片视频电影 | 特黄色大片 | www天天干| 日本中文字幕在线免费观看 | 国产高潮久久 | 精品国产一区二区三区久久久蜜臀 | 99精品国产福利在线观看免费 | 日韩99热 | 激情久久久久久久久久久久久久久久 | 久久免费视频99 | 日批视频国产 | 一级黄色免费 | 欧美伦理一区二区三区 | 国产剧情一区在线 | 欧美日韩精品在线免费观看 | 精品在线亚洲视频 | 超碰在线人人爱 | 精品国产乱码久久久久久1区2匹 | 天天av综合网 | 黄色官网在线观看 | 久草免费在线视频 | 精品视频999 | 天天色天天射天天操 | 在线精品一区二区 | 婷婷免费在线视频 | 亚洲一区二区视频在线 | 精品国产精品国产偷麻豆 | 中文字幕av免费在线观看 | 久久精品久久久久 | 国产成人久久久77777 | 国产精品一区二区三区久久 | 久久久久久久久久久久久久av | 久久69av | 亚洲免费观看在线视频 | 久久久91精品国产一区二区三区 | 97视频在线免费观看 | 中文字幕在线网 | 久久99热精品这里久久精品 | 99精品色| 日韩免费在线观看视频 | 天天草天天干天天射 | 999一区二区三区 | 日韩中文字幕免费看 | 国内精品久久久久影院一蜜桃 | 日韩在线观看中文字幕 | 91av视频导航| 六月婷婷网 | 天天操夜夜拍 | 最新国产在线视频 | 久久久国产网站 | 91爱爱中文字幕 | 最新日韩视频在线观看 | 国产精品入口66mio女同 | 久国产在线播放 | 日日射天天射 | 久草剧场 | 探花视频在线观看+在线播放 | 久久影视一区二区 | 草樱av| 亚洲精品在线观看免费 | 日韩午夜网站 | 91精品国产福利在线观看 | 亚洲一区二区三区91 | 久久狠狠一本精品综合网 | 国产又粗又猛又黄又爽 | 日本精品一区二区 | 国产精品国产三级国产aⅴ9色 | 在线视频国产区 | www日韩在线 | 成人av.com | 午夜精品久久久久久久久久 | 亚洲毛片一区二区三区 | 91 在线视频播放 | 99精品久久99久久久久 | 国产视频一区在线 | 国产精品福利午夜在线观看 | 久久精品官网 | 国产精品夜夜夜一区二区三区尤 | 国产精品久久久久久久毛片 | 久久久人 | 97电影网站 | 亚洲 欧美 变态 国产 另类 | 91av在线电影| 久久九九影视网 | 九七视频在线观看 | 亚洲精品在线播放视频 | 97在线观看视频免费 | 国产精品久久久久久高潮 | 日本黄色免费在线观看 | 99精品久久久久 | 一区二区三区四区影院 | 成人啪啪18免费游戏链接 | 亚洲第一成网站 | 国产五月天婷婷 | 一级片视频免费观看 | 精品视频国产 | 九九久久久久久久久激情 | 中日韩在线视频 | 一区二区三区中文字幕在线观看 | 久久免费视频一区 | 欧美成人猛片 | 91精品一| 精品日韩中文字幕 | 免费污片 | 六月色丁| 国产精品国产自产拍高清av | 精品亚洲免费视频 | 国产污视频在线观看 | 成人精品电影 | 婷婷久久综合网 | 午夜免费视频网站 | 国产伦理精品一区二区 | 色天天综合久久久久综合片 | www.国产精品 | 婷婷色伊人 | 国产精品电影一区 | 九九热在线视频免费观看 | 日韩免费区| 免费在线观看视频一区 | 国产精品久久久久久久妇 | 国产一区二区在线免费播放 | 久久久久久综合 | 91成人免费看 | 天天爽天天碰狠狠添 | 亚洲女在线 | 91香蕉国产 | 99精品热视频只有精品10 | 欧美 亚洲 另类 激情 另类 | 国产精品久久久久久久妇 | 日韩美精品视频 | 国产精品一区二区白浆 | 国产精品精品国产 | 久久精品99国产精品日本 | 国产一级免费电影 | 99视频在线免费观看 | 久久视频精品 | 欧美久久九九 | 国产黄影院色大全免费 | av.com在线| 国产网站色| 999成人国产| 激情婷婷色 | 久久久午夜精品理论片中文字幕 | 色爱成人网 | 欧美一区二区伦理片 | 香蕉视频在线免费看 | 2022久久国产露脸精品国产 | 美女一区网站 | 日韩av偷拍 | 中文欧美字幕免费 | 日韩在线观看不卡 | 国产精品一区二区在线播放 | 激情五月av| 在线观看aa | 久久96 | 国产精品综合久久久久久 | 中文字幕在线观看一区二区 | 久久草在线视频国产 | 国产无吗一区二区三区在线欢 | 国产a国产 | www.av小说| 色综合咪咪久久网 | 久久在线视频在线 | 草久久久久久久 | 99综合电影在线视频 | 午夜久久影视 | 中文字幕专区高清在线观看 | av电影免费| 欧洲成人av | 中文国产在线观看 | 一本一道久久a久久精品蜜桃 | 国产成人91 | 天堂av在线中文在线 | 91麻豆精品 | 国产一区免费 | 日韩在线视频在线观看 | 久草视频在线免费看 | 韩日电影在线观看 | 日本久久久久 | 午夜精品一区二区三区在线 | www.看片网站| 国产一区播放 | 99久久这里有精品 | 伊甸园av在线 | 国内外成人在线视频 | 久久国产网 | 日韩在线短视频 | 免费在线观看成年人视频 | 日日操日日插 | 麻豆影音先锋 | 久久综合九色99 | 婷婷日韩| 国产高清视频免费 | 国内久久久久久 | 国产精品久久久av久久久 | 97超级碰碰碰视频在线观看 | 在线免费色 | 国产亚洲精品电影 | 在线国产一区二区三区 | 91视频网址入口 | 国产1区2区3区精品美女 | 香蕉在线视频观看 | 99热最新 | www.人人干| 亚洲日韩欧美视频 | 中文字幕欧美日韩va免费视频 | 伊甸园av在线| 97超碰资源总站 | 97香蕉超级碰碰久久免费软件 | 97色在线观看 | 精品久久久免费 | 国产美女在线精品免费观看 | 不卡av在线 | 免费观看第二部31集 | 国产高清视频在线免费观看 | 国产精品1000 | 欧美成人影音 | 午夜免费在线观看 | 一区二区三区电影大全 | 国产va精品免费观看 | 超碰资源在线 | 最新av网址在线 | 91精选 | 久久国产精品免费看 | 久久国产精品精品国产色婷婷 | 亚洲激情在线观看 | 麻豆视频免费播放 | h文在线观看免费 | 免费网站黄色 | 中文字幕av免费观看 | 亚州av网站| 91视频免费看 | 麻豆免费看片 | 菠萝菠萝蜜在线播放 | 91精品免费看 | 久久久久久久久久久网 | 狠狠色丁香九九婷婷综合五月 | 免费的黄色的网站 | 久久国语露脸国产精品电影 | 毛片无卡免费无播放器 | 超碰在线1 | 天天操天天艹 | 亚洲日本一区二区在线 | 久久久久久久久久久综合 | 视频在线一区二区三区 | 在线观看一区 | 免费看的国产视频网站 | 天天碰天天操视频 | 在线免费国产视频 | 丁香久久五月 | 日韩精品中文字幕在线观看 | 成人av在线直播 | 最新中文字幕在线资源 | 精品国产激情 | 视频精品一区二区三区 | 四虎国产视频 | 国产黄色视 | 久草国产在线观看 | 草免费视频 | 亚洲午夜大片 | 久久国产亚洲精品 | 午夜在线日韩 | 亚洲另类视频 | 久久99精品国产 | 狠狠色丁香婷婷综合 | 国产精品乱看 | 黄色大片网 | 在线观看亚洲免费视频 | 一区二区三区四区五区在线 | 中文字幕 第二区 | 欧美日韩视频 | 午夜精品久久久久久久久久久久 | 97精品国产97久久久久久粉红 | 手机av在线免费观看 | www..com毛片 | 99久久999久久久精玫瑰 | 狠狠干天天射 | 精品亚洲免费视频 | bbbbb女女女女女bbbbb国产 | 最近中文字幕 | 91麻豆传媒 | 日韩av免费在线电影 | 国产一卡二卡在线 | 国内偷拍精品视频 | 中文在线免费一区三区 | 99在线精品视频在线观看 | 西西大胆免费视频 | 久艹视频在线免费观看 | 久久影视一区 | 久久国产亚洲精品 | 一区二区三区在线观看免费 | 日日夜夜干| 91豆花在线观看 | 青青草国产在线 | 91自拍视频在线 | 久久96国产精品久久99软件 | 97视频免费在线看 | 欧美日本中文字幕 | 精品久久久久久亚洲综合网站 | 国产高清成人av | 日韩免费一区二区 | 91一区二区三区在线观看 | 久久久久国产成人免费精品免费 | 高清av免费一区中文字幕 | 国产黄在线 | 国产精品毛片久久久久久 | 99视屏| 国产精品网红福利 | 免费中文字幕 | 日韩色在线观看 | 日韩成人免费在线 | 2019中文| 日日躁你夜夜躁你av蜜 | 九色在线 | 久久久久国产成人精品亚洲午夜 | 成人免费网站在线观看 | 最新日韩在线观看 | 玖玖视频国产 | 成年人在线免费看视频 | 狠狠88综合久久久久综合网 | 国产视频一二三 | 欧美婷婷综合 | 91av视频免费在线观看 | 国产亚洲午夜高清国产拍精品 | 亚洲黑丝少妇 | 亚洲天堂网站视频 | 不卡av免费在线观看 | 日韩一区二区三区观看 | 久久天天躁 | 精品免费观看视频 | 午夜的福利| 日韩成人精品一区二区 | 国产精品久久在线 | 麻豆一区在线观看 | 午夜国产福利视频 | 久久久久久免费视频 | 日韩理论电影在线 | 91手机在线看片 | 欧美极品在线播放 | 在线观看日韩精品视频 | 狠狠五月天 | 国产一级片免费观看 | 1024在线看片 | 国产在线理论片 | 一二三精品视频 | 日韩理论在线 | 去看片 | 天天操天天干天天综合网 | 久久毛片高清国产 | 日本三级在线观看中文字 | 91成品视频 | 91精品国产九九九久久久亚洲 | 天天射天天干天天操 | 成人午夜电影在线播放 | 国产久草在线观看 | 91亚洲精| 精品国产成人在线影院 | 日韩av不卡在线 | 波多野结衣在线观看一区二区三区 | 久久国产精品免费一区二区三区 | 亚洲国产激情 | 天天干天天射天天爽 | 久久人人爽人人爽人人片av软件 | 五月天堂网 | 国内成人精品视频 | 日韩av电影一区 | 五月在线 | 日韩中文字幕在线不卡 | www.黄色在线 | 91视频免费观看 | 国内视频1区 | 成人国产一区 | 免费黄色av电影 | 九九色在线 | 日本性xxx | 亚洲午夜精品福利 | 97超碰中文 | 亚洲91中文字幕无线码三区 | 成人久久 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲精品成人在线 | 欧美高清成人 | 中文字幕日韩国产 | 亚洲精品视 | 伊人中文网 | 国产二区免费视频 | 久草在线免费资源 | 亚洲精品综合在线观看 | 99视频播放| 色视频网站免费观看 | 欧美成年黄网站色视频 | 99视频精品全部免费 在线 | 最近日本字幕mv免费观看在线 | 日韩精品一区二区三区不卡 | 久久久久精 | 亚色视频在线观看 | 欧美在线观看视频免费 | 国产97免费 | 99婷婷| 国产资源免费在线观看 | 日韩乱码中文字幕 | www.888av | 欧美日韩在线视频免费 | 久久99热精品这里久久精品 | 91看国产| 激情伊人五月天久久综合 | 久久精品资源 | 在线观看久 | 精品一区二区在线免费观看 | 久久久18 | 成年人电影免费看 | 最近中文字幕在线中文高清版 | 日本少妇视频 | 久久免费试看 | 午夜视频99| 婷婷国产一区二区三区 | 日韩在线观看高清 | 色婷婷视频| 国产精品国产亚洲精品看不卡15 | 高清在线观看av | 国产永久免费 | 国产一卡二卡在线 | 五月婷婷丁香激情 | 成人av动漫在线观看 | 夜夜骑日日操 | 999在线精品 | 探花视频免费在线观看 | 久草在线播放视频 | 久草剧场| 日韩免费专区 | 欧美在线视频一区二区 | 日本黄色免费电影网站 | 欧美午夜精品久久久久久孕妇 | 久久人人爽人人爽人人片 | 日批网站免费观看 | 成人啪啪18免费游戏链接 | 国产一区二区三区免费在线观看 | 亚洲精品在线看 | 欧美一区二区三区在线看 | 久久精品艹 | 亚洲理论在线观看 | 色综合久久久 | 国产精品国产亚洲精品看不卡15 | 这里有精品在线视频 | 亚洲永久免费av | 91免费版成人 | 国产剧情av在线播放 | 精品久久久久久久久久 | 欧美激情在线看 | 婷婷视频在线 | 丁香花五月 | 黄色网在线播放 | 久久精品8 | 国产一级二级三级视频 | 国产亚洲在线 | 久久免费黄色大片 | av在线不卡观看 | 一级α片免费看 | 在线免费视 | 国产黄色精品在线 | 麻豆影音先锋 | www夜夜操com| 在线看成人 | 欧美精品久久久久性色 | 人人澡人人爽欧一区 | 亚洲成av人影院 | 欧美日韩综合在线观看 | 久久黄色成人 | 久久国际影院 | av在线播放不卡 | 91av手机在线| 91精品成人久久 | 玖玖玖精品 | 欧美日韩在线精品一区二区 | 久久久国产电影 | 免费成人在线观看 | 少妇性bbb搡bbb爽爽爽欧美 | 日韩久久久久久久 | 丁香激情婷婷 | 97视频久久久 | 亚洲免费高清视频 | 伊人视频 | 国产精品成人av电影 | 视频在线观看亚洲 | 亚洲成人国产 | 久一久久| 色综合久久悠悠 | av网址aaa| 国内免费的中文字幕 | 人人干网站| 亚洲.www| 日韩专区中文字幕 | 久久国产精品第一页 | 深夜福利视频在线观看 | www.久久91 | 欧美日韩1区2区 | 91久久黄色| 黄av免费| 久热免费在线观看 | 国产日韩精品一区二区在线观看播放 | 香蕉日日 | 免费电影播放 | 99视频导航| 国产黄色观看 | 91麻豆精品国产91久久久久 | 一区二区三区免费网站 | 天天曰| 日本狠狠干 | 天堂视频中文在线 | 在线一二三四区 | 免费的国产精品 | 中文在线免费视频 | 欧美日韩亚洲第一页 | 少妇自拍av | 国产精品美女www爽爽爽视频 | 超碰在线cao | 国产精品高清在线观看 | 久草免费在线视频观看 | 91人人插 | 激情五月播播久久久精品 | 91精品视频网站 | 亚洲精品在线观看中文字幕 | adn—256中文在线观看 | 国产夫妻性生活自拍 | 国产精品资源在线观看 | 免费高清在线观看成人 | 中文字幕在 | 色人久久 | 欧美一级片免费播放 | 一区二区三区免费在线观看 | 午夜精品久久久久久99热明星 | 日本中文字幕网址 | 91九色最新地址 | 久久国产欧美日韩精品 | 久久天堂亚洲 | 日韩av电影一区 | 天天干天天操天天 | 丁香五月缴情综合网 | 日韩一级黄色av | 久久免费视频播放 | 国产在线观看,日本 | 成人久久18免费网站麻豆 | 99精品在线免费 | 国产精品 视频 | 欧美在线视频一区二区 | 久久在线播放 | 欧美日韩亚洲第一 | 人人超碰人人 | 四虎www. | 久久免费看片 | 欧美激情第28页 | 久久免费国产电影 | 免费亚洲精品视频 | 一区二区成人国产精品 | 99久久综合国产精品二区 | 91视视频在线直接观看在线看网页在线看 | 丁五月婷婷 | 狠狠色狠狠综合久久 | 国产在线不卡一区 | 午夜视频二区 | 毛片一区二区 | 国产资源精品 | 在线观看www视频 | 国产欧美综合视频 | 天天综合日| 9ⅰ精品久久久久久久久中文字幕 | 在线天堂中文在线资源网 | 亚洲天堂社区 | 青草视频在线播放 | 日韩91精品| 日韩专区在线播放 | 天天躁天天狠天天透 | 99se视频在线观看 | 国产成人精品免费在线观看 | 国产色在线观看 | 日日干干夜夜 | 91精品一区二区三区蜜臀 | 日韩在线视频国产 | 国产91精品一区二区 | 中文字幕一区二区三区久久蜜桃 | 亚洲区另类春色综合小说 | 欧美一区二区三区在线观看 | 五月天狠狠操 | 色多多污污 | 在线观看日韩精品 | 懂色av懂色av粉嫩av分享吧 | 亚洲午夜精品久久久 | 免费黄在线看 | 日韩在线激情 | 婷婷久久综合网 | 欧美日韩精品国产 | 麻豆免费在线视频 | 亚洲国产一区在线观看 | 日韩欧美精品在线观看视频 | 国产成人精品在线播放 | 国产91aaa | 午夜少妇一区二区三区 | 国产精品久久久久久a | 一区二区三区四区在线 | 欧美激精品| 久久99偷拍视频 | 黄a在线看 | 国产96在线观看 | 亚洲国产人午在线一二区 | a国产精品| 91污视频在线 | 欧美日韩国产在线一区 | 免费三及片 | 国产剧情久久 | 在线免费观看的av | japanesefreesexvideo高潮 | 久久久伦理 | 国产露脸91国语对白 | 国产亚洲精品bv在线观看 | 日韩精品亚洲专区在线观看 | 日韩精品一区二区三区视频播放 | 免费黄色小网站 | 精品免费一区 | 国产精品一区二区 91 | 亚洲黄色小说网 | 免费看特级毛片 | 国产精品剧情在线亚洲 | 一本一本久久a久久精品综合小说 | 日韩av片免费在线观看 | 久久久久久毛片精品免费不卡 | 欧美日韩首页 | av色综合网 | 国产在线理论片 | 成人h动漫在线看 | www.色就是色 | 999电影免费在线观看 | 免费看国产a | 经典三级一区 | 欧美激情综合五月色丁香 | 天天操天天曰 | 91在线播放综合 | 在线小视频你懂得 | 九九视频在线 | 色婷婷综合成人av | 久久久久久久久免费 | 欧美日韩电影在线播放 | 在线免费观看黄色大片 | 亚洲三级黄色 | 久久精品欧美一区二区三区麻豆 | 韩国视频一区二区三区 | 久久久麻豆视频 | 欧美在线a视频 | 国产日韩精品久久 | 色999视频| 91视频在线免费看 | 色停停五月天 | 国产午夜一级毛片 | 欧美日本一区 | 五月婷婷黄色网 | 国产亚洲精品久久久久久电影 | 亚洲激色| 亚洲在线观看av | 激情网站免费观看 | 五月天色丁香 | 99国产精品一区二区 | 日韩毛片在线免费观看 | 在线观看成人小视频 | 日韩免费不卡视频 | 天天av天天 | 天天曰天天 | 一级片免费视频 | 成人精品久久久 | 国产精品久久久久久久久久直播 | 操操操日日日干干干 | 久免费 | 在线播放精品一区二区三区 | 2019中文最近的2019中文在线 | 久久久精品在线观看 | 国产一级做a爱片久久毛片a | 91亚瑟视频 | 97香蕉视频| 91麻豆精品国产91久久久无限制版 | 久久久www成人免费毛片 | 欧美精品第一 | 国产精品久久久久久一区二区三区 | 色噜噜日韩精品欧美一区二区 | 亚洲精品一区二区18漫画 | 免费观看av网站 | sesese图片 | 免费观看福利视频 | 亚洲精品中文在线 | 黄色国产精品 | 亚洲情影院 | 日韩成人高清在线 | 国内成人av | 美女视频永久黄网站免费观看国产 | 美女国产| 精品久久五月天 | 亚洲精品视频免费看 | 国产精品一区二区三区在线播放 | 欧美激情视频在线免费观看 | 开心激情综合网 | 一区二区视频在线观看免费 | 国产成人精品一区二 | 在线观看视频97 | 天天操天天舔天天干 | 久久久久久久久爱 | 一区二区三区在线观看中文字幕 | 久久黄色a级片 | 91成人免费观看视频 | 精品一区二区视频 | 在线中文字幕观看 | 免费男女羞羞的视频网站中文字幕 | 日韩在线 | 97爱| 日韩精品中文字幕一区二区 | 美女精品 | 99视频在线免费观看 | 欧美看片 | 亚洲日本欧美在线 | 欧美精品一二 | 91免费看片黄 | 三级av在线 | 久久国产a | 国产精品欧美久久 | 狠狠色狠狠综合久久 | www.av在线播放 | 天天干,夜夜操 | 九九久久影视 | 天天天天天天干 | 综合久久2023| 丰满少妇一级 | 极品久久久 | 久久久午夜精品福利内容 | 中文字幕免费国产精品 | 国产成人精品午夜在线播放 | 天天操天天射天天爱 | 亚洲最大激情中文字幕 | 国产三级视频在线 | 国产精品24小时在线观看 | 天天干,天天插 | 国产精品色在线 | 九九免费观看全部免费视频 | 色综合天天综合 | 伊人www22综合色 | 国产精品毛片一区视频播不卡 | 国产成人一区二区三区免费看 | 69久久99精品久久久久婷婷 | 97超碰免费在线 | www.黄色片网站 | 81精品国产乱码久久久久久 | 国产日韩欧美在线免费观看 | 色的网站在线观看 | 中文理论片 | av成人在线播放 | 美女在线观看网站 | 亚洲少妇xxxx | 久久免费视频一区 | 18久久久久久 | 黄色tv视频| av一级在线观看 | 国产精品成人久久 | 亚洲 欧美 另类人妖 | 黄色软件视频大全免费下载 | 99成人精品 | 涩涩爱夜夜爱 | 一级黄色片在线 | 欧美美女激情18p | 黄色影院在线免费观看 | 国产日韩欧美在线播放 | 精品国产综合区久久久久久 | 午夜精品视频一区二区三区在线看 | a成人v | 免费看十八岁美女 | 77国产精品| 亚洲四虎影院 | 久久久一本精品99久久精品 | 久草免费福利在线观看 | 久久免费视频在线观看30 | 久久er99热精品一区二区三区 | 91免费网 | 久久专区| 亚洲伊人色 | 成人少妇影院yyyy | a成人v在线 | 麻豆 videos| 伊人狠狠干 | 97视频网址| 97电影网手机版 | 一区二区欧美在线观看 | 国产精品免费观看国产网曝瓜 | 亚洲激情影院 | av福利资源 | www日韩视频 | av高清不卡| 午夜成人免费电影 | 看av在线 | 91香蕉视频| 91刺激视频 | 日韩毛片一区 | 久久人人爽 | 亚洲日本va午夜在线电影 | 日韩精品免费在线视频 | 成人久久久电影 | 黄色软件视频大全免费下载 | 蜜臀av性久久久久av蜜臀妖精 | 国产又粗又猛又黄视频 | 国产精品久久久久久久久久不蜜月 | 91字幕| 麻豆视频在线观看 | 九草视频在线观看 | 日韩精品在线播放 | 精品亚洲成a人在线观看 | 免费看片网页 | 午夜丰满寂寞少妇精品 | 麻豆免费在线视频 | 日本动漫做毛片一区二区 | 久久久久久久久久久成人 | 成人av高清在线 | av中文电影| 91在线视频观看 | 成人av教育 | 欧美精品久久久久久 | 亚洲精品一区二区三区在线观看 | 看片的网址 | 区一区二区三区中文字幕 | 99999精品 | 中文字幕频道 | 日韩在线电影观看 | 精品欧美一区二区三区久久久 | av免费在线观看1 | 狠狠躁夜夜a产精品视频 | 国产中文在线字幕 | 欧美性生活免费看 | 天天色天天色 | 亚洲黄在线观看 | 国产69精品久久久久9999apgf | 欧美人交a欧美精品 | 国产粉嫩在线观看 | 五月天婷婷狠狠 | 久久一区二区三区国产精品 | 成人网看片| 在线免费视频一区 | 欧美日韩免费一区 | 国产免费a| 中文在线a√在线 | 在线免费观看涩涩 | 日韩精品观看 | 欧美人体xx| 天天干中文字幕 | 久久精品国产精品亚洲 | 国产精品1区2区在线观看 | 欧美综合在线视频 | 久久精品国产免费看久久精品 | 91麻豆.com| 五月综合激情婷婷 | 99视频一区 | 色五月情| 欧美日韩中文字幕视频 | 免费看污黄网站 | 97视频免费观看 | 国产精品av在线免费观看 | 中文字幕.av.在线 | av在线网站免费观看 | 国产一区二区免费看 | 久久综合久久综合九色 | 国产亚洲婷婷免费 | 男女啪啪免费网站 | 久久精品网址 | 国产精品成人av在线 | 在线观看免费观看在线91 | 美女视频黄在线 | 国产精品久久久久久久久久东京 | 91午夜精品 | 日韩天天综合 | 久久久高清视频 | 日本在线观看中文字幕 | 亚洲美女在线国产 | 91精品视频在线播放 | 色婷婷免费视频 | www.亚洲精品| 91黄在线看 | 97超碰免费 | 中文字幕在线不卡国产视频 | 国产91全国探花系列在线播放 | 国产午夜影院 | 午夜av电影院| 成人av免费电影 | av免费看在线 | 国产手机在线观看 | 黄a在线| 丝袜网站在线观看 | caobi视频 | 毛片永久免费 | 综合激情网... | 特级xxxxx欧美 | 丰满少妇麻豆av | 97理论电影 | 99久久久久久国产精品 | 天天天操天天天干 | 久一在线 | 婷婷久久五月天 | 婷婷精品国产欧美精品亚洲人人爽 | 97操碰| 特级西西444www大精品视频免费看 | 日日夜夜天天射 | 毛片区| 成人av在线网 | www.在线观看视频 | 日韩有码网站 | 中文字幕在线观看免费高清完整版 | 午夜视频色 | 久久网址 | 操操日日 | 国产一区二区三区 在线 | 手机看片中文字幕 | 亚洲综合一区二区精品导航 | 亚洲欧美偷拍另类 | 天天天干天天射天天天操 | 极品久久久久久久 | av大全在线看 | 亚洲在线视频播放 | 在线中文字幕播放 | 成年人视频在线免费观看 | 日韩精品一区二区三区外面 | 国产精品成久久久久三级 | 国产在线精品一区二区 | 色姑娘综合网 | 久草在线资源网 | 久久99亚洲精品久久 | 色综合天天在线 | 最近中文字幕mv | 九九九热精品免费视频观看 | 久久久久久久网站 | 日日夜夜爱 | 国内免费的中文字幕 | 久久久久久久久免费视频 | 亚洲欧美婷婷六月色综合 | 日韩r级电影在线观看 | 亚洲精品视频免费在线 | 日韩三级不卡 | 九九九九九九精品 | 99精品久久精品一区二区 | 五月天六月色 | 日韩网页| 日韩高清成人 | 久久久精选 | 免费麻豆视频 | 99久久一区 |