【发布时间】:2014-05-02 18:40:20
【问题描述】:
我正在尝试在上传之前减少员工照片。检查了帮助,但所有的答案都非常混乱。我在这里寻求专家的帮助:)
我通过下面的代码打开图片到我的图片框
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "JPG Files(*.jpg)|*.jpg|GIF Files(*.gif)|*.gif|All Files(*.*)|*.*";
dlg.Title = "Select Employee Picture";
if (dlg.ShowDialog() == DialogResult.OK)
{
Image im = new Bitmap(dlg.FileName);
picEMP.Image = im;
string imgloc = dlg.FileName.ToString();
}
并使用以下代码将图像转换为二进制
byte[] img = null;
FileStream fs = new FileStream(imgloc, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
img = br.ReadBytes((int)fs.Length);
最后用参数值上传
command.Parameters.Add(new SqlParameter("@img", img));
但我没有检查图像大小。我想检查图像大小或分辨率(高度,宽度)并使用固定大小(188,222)减小图像大小,然后将图像上传到我的 sql 服务器。我的 SQL 连接代码如下:
SqlConnection conn = new SqlConnection("Data Source=host; Initial Catalog=TimeAttendance; User ID=id; Password=password");
请帮忙.......
【问题讨论】:
-
您需要使用图形库(例如 .NET 的 GDI+ 库)来操作图像并对其进行缩放等。GDI+
-
您是想缩小图像的宽度和高度,还是只是想减少存储在 SQL 中的字节数?
-
@RickS 我认为前者:“我想检查图像大小或分辨率(高度,宽度)并使用固定大小(188,222)缩小图像大小”
-
我想要做的就是减小图像大小,使其对我的数据库的阻塞不超过 50kb。目前,如果我选择 5MB 的图像,它会阻塞相同的空间,因此加载需要很长时间。想要删除图像的大小。
标签: c# sql-server