PDA

View Full Version : آموزش: تغییر اندازه عکس قبل از ذخیره در دیتابیس ...



ghasem110deh
جمعه 01 اسفند 1393, 15:44 عصر
سلام به همه ...
بعضی وقتا لازمه که عکس هم توی بانک ذخیره شه ، اما ممکن کاربر تصاویری در ابعاد مختلف رو انتخاب کنه !
با این چند خط میشه اندازه دلخواه رو در بانک ثبت کرد .


http://s5.picofile.com/file/8172219068/w32000.png


طبیعتا باس اول عکس رو انتخاب کرد :


OpenFileDialog op = new OpenFileDialog();
if (op.ShowDialog() == DialogResult.OK)
{
txtImage.Text = op.SafeFileName;
pictureBox1.ImageLocation = op.FileName;
}


متد تغییر اندازه :


using System.Drawing;
public static Image resizeImage(Image imgToResize, Size size)
{
return (Image)(new Bitmap(imgToResize, size));
}


اصل کار اینجاست که قبل از کامل شدن بارگذاری عکس در pictureBox اندازه تغییر میکنه :



private void pictureBox1_LoadCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) // تغییر اندازه تصویر قبل از ذخیره در بانک
{
pictureBox1.Image = resizeImage(pictureBox1.Image, new Size(80, 80));
}


البته ذخیره در بانک رو محض یادآوری میزارم ...
ریختن عکس در آرایه بصورت بیت :


public static byte[] ImageToByte(Image img)
{
ImageConverter converter = new ImageConverter();
return (byte[])converter.ConvertTo(img, typeof(byte[]));
}



کلید ذخیره :


string query = "Insert Into Pic (Nam, Pic) Values (@n, @P)";
SqlCommand com1 = new SqlCommand(query, con1);
com1.Parameters.AddWithValue("@n", txtName.Text);
com1.Parameters.AddWithValue("@P", ImageToByte(pictureBox1.Image));
con1.Open();
com1.ExecuteNonQuery();
con1.Close();


---------------------------------------
یا علی !