Array
(
)

SALVAR IMAGEM REDUZIDA

Marcos Loyola
   - 26 set 2013

Bom dia a todos, tenho esse código que SALVA dado em TEXTO e IMAGENS diretamente no BANCO MYSQL, funciona perfeitamente,
Gostaria de saber como faço para SALVAR AS IMAGENS com tamanho REDUZIDO tipo 800x600

using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI.HtmlControls;
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
public partial class frmCategorias : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnCadastrar_Click(object sender, EventArgs e)
{
Salvar();
}
private void Salvar()
{
string nomeempresa = txtEmpresa.Text;
string cidade = txtCidade.Text;
string dataanuncio = txtData.Text;
string atividades = CKEditorControl1.Text;
string site = txtSite.Text;
string email = txtEmail.Text;
string telefones = txtTelefones.Text;
byte[] img1 = FULogo.FileBytes;
byte[] img2 = FUFoto2.FileBytes;
byte[] img3 = FUFoto3.FileBytes;
byte[] img4 = FUFoto4.FileBytes;
byte[] img5 = FUFoto5.FileBytes;
byte[] img6 = FUFoto6.FileBytes;
byte[] img7 = FUFoto7.FileBytes;
byte[] img8 = FUFoto8.FileBytes;
byte[] img9 = FUFoto9.FileBytes;
byte[] img10 = FUFoto10.FileBytes;
byte[] img11 = FUFoto11.FileBytes;
string video = txtVideo.Text;

string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(conStr))
{
using (MySqlCommand cmd = new MySqlCommand("insert INTO tanunciantes (NomeEmpresa, Cidade, DataAnuncio, Atividades, Site, Email, Telefones, Foto1, Foto2, Foto3, Foto4, Foto5, Foto6, Foto7, Foto8, Foto9, Foto10, Foto11) VALUES (@NomeEmpresa, @Cidade, @DataAnuncio, @Atividades, @Site, @Email, @Telefones, @Foto1, @Foto2, @Foto3, @Foto4, @Foto5, @Foto6, @Foto7, @Foto8, @Foto9, @Foto10, @Foto11", con))
{
cmd.Parameters.AddWithValue("@NomeEmpresa", nomeempresa);
cmd.Parameters.AddWithValue("@Cidade", cidade);
cmd.Parameters.AddWithValue("@DataAnuncio", dataanuncio);
cmd.Parameters.AddWithValue("@Atividades", atividades);
cmd.Parameters.AddWithValue("@Site", site);
cmd.Parameters.AddWithValue("@Email", email);
cmd.Parameters.AddWithValue("@Telefones", telefones);

cmd.Parameters.AddWithValue("Foto1", img1);
cmd.Parameters.AddWithValue("Foto2", img2);
cmd.Parameters.AddWithValue("Foto3", img3);
cmd.Parameters.AddWithValue("Foto4", img4);
cmd.Parameters.AddWithValue("Foto5", img5);
cmd.Parameters.AddWithValue("Foto6", img6);
cmd.Parameters.AddWithValue("Foto7", img7);
cmd.Parameters.AddWithValue("Foto8", img8);
cmd.Parameters.AddWithValue("Foto9", img9);
cmd.Parameters.AddWithValue("Foto10", img10);
cmd.Parameters.AddWithValue("Foto11", img11);

con.Open();
cmd.ExecuteNonQuery();
}
if (!Page.IsPostBack)
{
btnCadastrar.Attributes.Add("onclick", "alert('Anunciante cadastrado com sucesso.');");
}
txtEmpresa.Text = "";
txtCidade.Text = "";
txtData.Text = "";
CKEditorControl1.Text = "";
txtSite.Text = "";
txtEmail.Text = "";
txtTelefones.Text = "";

}
}
}

Joel Rodrigues
   - 26 set 2013

Qual é o tipo dos objetos FUFoto1,2,3, etc?

Marcos Loyola
   - 27 set 2013

No MySql é LongBlog já salvo como binario no banco

Joel Rodrigues
   - 27 set 2013

Não, não, o tipo do objeto no C#.

Marcos Loyola
   - 27 set 2013

Uso o FileUpload e transformo a imagem em byte

Paulo Freire
|
MVP
    27 set 2013

Porque vc não tentar um Resize antes ?????

public Image resizeImage(int newWidth, int newHeight, string stPhotoPath)
{
Image imgPhoto = Image.FromFile(stPhotoPath);

int sourceWidth = imgPhoto.Width;
int sourceHeight = imgPhoto.Height;

//Consider vertical pics
if (sourceWidth < sourceHeight)
{
int buff = newWidth;

newWidth = newHeight;
newHeight = buff;
}

int sourceX = 0, sourceY = 0, destX = 0, destY = 0;
float nPercent = 0, nPercentW = 0, nPercentH = 0;

nPercentW = ((float)newWidth / (float)sourceWidth);
nPercentH = ((float)newHeight / (float)sourceHeight);
if (nPercentH < nPercentW)
{
nPercent = nPercentH;
destX = System.Convert.ToInt16((newWidth -
(sourceWidth * nPercent)) / 2);
}
else
{
nPercent = nPercentW;
destY = System.Convert.ToInt16((newHeight -
(sourceHeight * nPercent)) / 2);
}

int destWidth = (int)(sourceWidth * nPercent);
int destHeight = (int)(sourceHeight * nPercent);

Bitmap bmPhoto = new Bitmap(newWidth, newHeight,
PixelFormat.Format24bppRgb);

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

Graphics grPhoto = Graphics.FromImage(bmPhoto);
grPhoto.Clear(Color.Black);
grPhoto.InterpolationMode =
InterpolationMode.HighQualityBicubic;

grPhoto.DrawImage(imgPhoto,
new Rectangle(destX, destY, destWidth, destHeight),
new Rectangle(sourceX, sourceY, sourceWidth, sourceHeight),
GraphicsUnit.Pixel);

grPhoto.Dispose();
imgPhoto.Dispose();
return bmPhoto;
}

Tem um artigo excelente do Danilão

http://social.msdn.microsoft.com/Forums/aspnet/pt-BR/eccdac6d-cc5f-410c-9c21-ef1e81adf588/resize-automtico-de-imagens-com-cnet