Mi problema es con c# en .Net es muy interesante: tengo una tabla en SQL 2005, contiene imágenes y quiero que se vean en un gridview; como ven en el código, está de la patada.
Bueno el problema radica principalmente en que no puede convertir el tipo de dato y almacenarlo en un array de tipo byte[]; ahí está el error.
Using c Syntax Highlighting
- public void Page_Load()
- {
- if (!IsPostBack)
- {
- loadContraportada();
- }
- }
- public void loadContraportada()
- {
- Regex objIsNumeric = new Regex("(^-?\\d\\d*$)");
- if (Request.QueryString["Id"].Length <= 0)
- {
- return;
- }
- int IntWidth = 30;
- int IntHeight = 30;
- Utilerias.Acceso UAc = new Utilerias.Acceso();
- String SQLQuery = "";
- SQLQuery = "select " + Request.QueryString["campo"] + " from tb_Skin_Portal where IdSkin=" + Request.QueryString["Id"];
- DataTable objdt = new DataTable();
- objdt = UAc.GetDataTableBD(SQLQuery, "moebius_db", false);
- if (objdt.Rows.Count > 0)
- {
- DataRow r = objdt.Rows[0];
- //bytImg = null;
- byte[] bytImg;
- bytImg = Encoding.UTF8.GetBytes(r[Request.QueryString["campo"]].ToString());
- Bitmap oBitmap = new Bitmap(IntWidth, IntHeight);
- oBitmap = Convertir_a_Image(bytImg);
- (oBitmap, IntWidth, IntHeight));
- Bitmap bmpOut = oBitmap;
- Response.ContentType = "image/jpeg";
- bmpOut.Save(Response.OutputStream, ImageFormat.Jpeg);
- }
- }
- private Bitmap CreateThumbNail(Bitmap postedFile, int width, int height)
- {
- System.Drawing.Bitmap bmpOut = default(System.Drawing.Bitmap);
- ImageFormat Format = postedFile.RawFormat;
- Decimal Ratio = 0;
- int NewWidth = 0;
- int NewHeight = 0;
- //*** If the image is smaller than a thumbnail just return it
- if ((postedFile.Width < width) && (postedFile.Height < height))
- {
- return postedFile;
- }
- if (postedFile.Width > postedFile.Height)
- {
- Ratio = Convert.ToDecimal(width / postedFile.Width);
- NewWidth = width;
- Decimal Temp = postedFile.Height * Ratio;
- NewHeight = Convert.ToInt32(Temp);
- }
- else
- {
- Ratio = Convert.ToDecimal(height / postedFile.Height);
- NewHeight = height;
- Decimal Temp = postedFile.Width * Ratio;
- NewWidth = Convert.ToInt32(Temp);
- }
- bmpOut = new Bitmap(NewWidth, NewHeight);
- Graphics g = Graphics.FromImage(bmpOut);
- g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
- g.FillRectangle(Brushes.White, 0, 0, NewWidth, NewHeight);
- g.DrawImage(postedFile, 0, 0, NewWidth, NewHeight);
- postedFile.Dispose();
- return bmpOut;
- }
- public Bitmap Convertir_a_Image(byte[] imagen)
- {
- MemoryStream ms = new MemoryStream(imagen, 0, imagen.Length, true);
- Bitmap bmp = new Bitmap(ms);
- ms.Close();
- return bmp;
- }
- }
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4