Código fuente C# para cargar imágenes y generar miniaturas en ASP.NET<FONT size=4><FONT size=4><FONT size=4>usando System;
usando System.Collections;
usando System.ComponentModel;
usando System.Data;
usando System.Drawing;
usando System.Web;
usando System.Web.SessionState;
utilizando System.Web.UI;
usando System.Web.UI.WebControls;
usando System.Web.UI.HtmlControls;
usando System.IO;
usando System.Drawing.Imaging
espacio de nombres eMeng.Exam;
{
/// <resumen>
/// Descripción resumida de la miniatura.
/// </summary>
Miniatura de clase pública: System.Web.UI.Page
{
protegido System.Web.UI.WebControls.Label Label1;
protegido System.Web.UI.WebControls.Button Button1;
Page_Load vacío privado (remitente del objeto, System.EventArgs e)
{
//Pon el código de usuario aquí para inicializar la página
Label1.Text = "<h3>Fácil de practicar en ASP.NET?lt;/h3>";
Button1.Text = "Cargar y mostrar miniaturas";
}
#región Código generado por Web Form Designer;
anular el vacío protegido OnInit (EventArgs e)
{
//
// CODEGEN: esta llamada la requiere el diseñador de formularios web ASP.NET.
//
InicializarComponente();
base.OnInit(e);
}
/// <resumen>
/// Designer admite los métodos requeridos; no use el editor de código para modificar
/// El contenido de este método.
/// </summary>
vacío privado InicializarComponente()
{
this.Button1.Click += nuevo System.EventHandler(this.Button1_Click);
this.Load += nuevo System.EventHandler(this.Page_Load)
;
#endregion
private void Button1_Click (remitente del objeto, System.EventArgs e)
{
HttpFileCollection MyFileColl = HttpContext.Current.Request.Files;
HttpPostedFile MyPostedFile = MyFileColl[0];
si (MyPostedFile.ContentType.ToString().ToLower().IndexOf("imagen") < 0)
{
Response.Write("Formato gráfico no válido.");
devolver;
}
GetThumbNail(MiArchivoPublicado.NombreDeArchivo, 100, 100,
MyPostedFile.ContentType.ToString(), falso, MyPostedFile.InputStream);
}
Sistema privado.Drawing.Imaging.ImageFormat GetImageType (objeto strContentType)
{
if ((strContentType.ToString().ToLower()) == "imagen/pjpeg")
{
devolver System.Drawing.Imaging.ImageFormat.Jpeg;
}
else if ((strContentType.ToString().ToLower()) == "imagen/gif")
{
devolver System.Drawing.Imaging.ImageFormat.Gif;
}
else if ((strContentType.ToString().ToLower()) == "imagen/bmp")
{
devolver System.Drawing.Imaging.ImageFormat.Bmp;
}
else if ((strContentType.ToString().ToLower()) == "imagen/tiff")
{
devolver System.Drawing.Imaging.ImageFormat.Tiff;
}
else if ((strContentType.ToString().ToLower()) == "imagen/x-icon")
{
devolver System.Drawing.Imaging.ImageFormat.Icon;
}
else if ((strContentType.ToString().ToLower()) == "imagen/x-png")
{
devolver System.Drawing.Imaging.ImageFormat.Png;
}
else if ((strContentType.ToString().ToLower()) == "imagen/x-emf")
{
devolver System.Drawing.Imaging.ImageFormat.Emf;
}
else if ((strContentType.ToString().ToLower()) == "imagen/x-exif")
{
devolver System.Drawing.Imaging.ImageFormat.Exif;
}
de lo contrario si ((strContentType.ToString().ToLower()) == "imagen/x-wmf")
{
devolver System.Drawing.Imaging.ImageFormat.Wmf;
}
demás
{
devolver System.Drawing.Imaging.ImageFormat.MemoryBmp;
}
}
privado vacío GetThumbNail (cadena strFileName, int iWidth, int iheight,
cadena strContentType, bool blnGetFromFile, System.IO.Stream ImgStream)
{
System.Drawing.Image oImg;
si (blnGetFromFile)
{
oImg = System.Drawing.Image.FromFile(strFileName);
}
demás
{
oImg = System.Drawing.Image.FromStream(ImgStream);
}
oImg = oImg.GetThumbnailImage(iWidth, iheight, null, IntPtr.Zero);
cadena strGuid = System.Guid.NewGuid().ToString().ToUpper();
cadena strFileExt = strFileName.Substring(strFileName.LastIndexOf("."));
Respuesta.ContentType = strContentType;
MemoryStream MemStream = nuevo MemoryStream();
oImg.Save(MemStream, GetImageType(strContentType));
MemStream.WriteTo(Response.OutputStream);
}
}
}
</FONT></FONT></FONT><FONT color=#ff0000 size=4></FONT><FONT size=4>Función:
1. Cargue el archivo de imagen (JPG GIF PNG),
2. Guarde en la ruta especificada (establezca la ruta en web.config y guarde el archivo en su formato original),
3. Y generar automáticamente el ancho especificado (establezca el ancho en web.config)
4. y formato especificado (especifique el formato de miniatura en web.config)
5. Una miniatura con las mismas proporciones que la imagen original (la altura de la miniatura se calcula en función del ancho y el ancho y alto de la imagen original)
6. Puede determinar si el archivo ya existe
7. Si no se anula, se da un error.
8. Si se selecciona la casilla de verificación "Sobrescribir imagen original", se sobrescribirá la imagen original.
9. Según los requisitos, se puede configurar más de una entrada de archivo y la casilla de verificación correspondiente en el formulario web.
10. Y después de cargar el archivo, el nombre del archivo, el tamaño, los bytes y
11. El tamaño del nombre de archivo de la miniatura.
12. El formato del nombre de archivo de las miniaturas: imagen original + "_thumb" + formato especificado, como: test.jpg_thumb.gif, para una fácil administración.
-------------------
UploadFile público vacío (remitente del objeto, System.EventArgs e)
{
cadena imgNameOnly, imgNameNoExt, imgExt;
cadena imgMiniatura;
int número de error = 0;
System.Drawing.Image oriImg, newImg;
cadena strFePicSavePath = ConfigurationSettings.AppSettings["FePicSavePath"].ToString();
string strFePicThumbFormat = ConfigurationSettings.AppSettings["FePicThumbFormat"].ToString().ToLower();
int intFeThumbWidth = Int32.Parse(ConfigurationSettings.AppSettings["FePicThumbWidth"]);
cadena fileExt;
StringBuilder picInfo = nuevo StringBuilder()
;
{
para(int i = 0;i < Solicitud.Archivos.Count; i++)
{
HttpPostedFile PostedFile = Solicitud.Archivos[i];
fileExt = (System.IO.Path.GetExtension(PostedFile.FileName)).ToString().ToLower();
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
if(archivoExt == ".jpg" || archivoExt == ".gif" || archivoExt == ".png")
{
if(System.IO.File.Exists(strFePicSavePath + imgNameOnly) && (checkboxlistRewrite.Items[i].Selected == false))
{
número de error = número de error + 1;
picInfo.Append("<b>Error:</b>File("+ (i+1) +") " + imgNameOnly + " ya existe, cambie el nombre del archivo<br/>" );
}
}
demás
{
número de error = número de error + 1;
picInfo.Append("<b>Error:</b> file("+ (i+1) +") " + imgNameOnly + " extensión" + fileExt + " no permitido<br/>" );
}
}
si(número de error > 0)
{
picInfo.Append("<font color=red>Todas las operaciones no se han completado, corrija los errores y continúe nuevamente</font><br/>");
}
demás
{
para(int i = 0;i < Solicitud.Archivos.Count; i++)
{
HttpPostedFile PublicadoFile = Solicitud.Archivos[i];
imgNameOnly = System.IO.Path.GetFileName(PostedFile.FileName);
imgNameNoExt = System.IO.Path.GetFileNameWithoutExtension(PostedFile.FileName);
imgExt = System.IO.Path.GetExtension(PostedFile.FileName).ToString().ToLower();
oriImg = System.Drawing.Image.FromStream(PostedFile.InputStream);
newImg = oriImg.GetThumbnailImage(intFeThumbWidth, intFeThumbWidth * oriImg.Height/oriImg.Width,null,new System.IntPtr(0));
cambiar(imgExt)
{
//caso ".jpeg":
caso ".jpg":
oriImg.Save(strFePicSavePath + imgNameOnly, System.Drawing.Imaging.ImageFormat.Jpeg);
romper;
caso ".gif":
oriImg.Save(strFePicSavePath + imgNameOnly, System.Drawing.Imaging.ImageFormat.Gif);
romper;
caso ".png":
oriImg.Save(strFePicSavePath + imgNameOnly, System.Drawing.Imaging.ImageFormat.Png);
romper;
}
//oriImg.Save(ConfigurationSettings.AppSettings["FePicSavePath"] + imgNameNoExt + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg
switch(strFePicThumbFormat)
{
// El formato jpeg puede obtener el tamaño de archivo más pequeño y png es el tamaño más grande
//caso "jpeg":
caso "jpg":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
romper;
caso "gif":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.gif",System.Drawing.Imaging.ImageFormat.Gif);
imgThumbnail = imgNameOnly + "_thumb.gif";
romper;
caso "png":
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.png",System.Drawing.Imaging.ImageFormat.Png);
imgThumbnail = imgNameOnly + "_thumb.png";
romper;
por defecto:
newImg.Save(strFePicSavePath + imgNameOnly + "_thumb.jpg",System.Drawing.Imaging.ImageFormat.Jpeg);
imgThumbnail = imgNameOnly + "_thumb.jpg";
break
}//switch
picInfo.Append("<b>Nombre de archivo:</b>" + imgNameOnly + " ( " + oriImg.Width + " x " + oriImg.Height + " ) " + PostedFile.ContentLength/1024 + "KB<br/>");
picInfo.Append("<b>Nombre de la miniatura:</b>" + imgThumbnail + " ( " + newImg.Width + " x " + newImg.Height + " )<br/>><br/>")
; Disponer();
newImg.Dispose();
}//para
picInfo.Append("<font color=red>Todas las operaciones se realizaron correctamente</font><br/>"
}// si erronumber = 0
);
}
demás
{
picInfo.Append("<font color=red>Hay un error, verifique. La operación no fue exitosa</font><br/>");
}
lblPicInfo.Text = picInfo.ToString()
;
</FONT>