我有一个windows application form
,我需要在datagridview
中显示图像thumbnails
。如何以缩略图形式在datagridview中显示图像
的图像存储在SQL Server 2005中
二进制数据是否有任何方法来显示图像的thumbnails
而不存储图像光盘上的文件。
请尽快回复。
我有一个windows application form
,我需要在datagridview
中显示图像thumbnails
。如何以缩略图形式在datagridview中显示图像
的图像存储在SQL Server 2005中
二进制数据是否有任何方法来显示图像的thumbnails
而不存储图像光盘上的文件。
请尽快回复。
通过每一行循环,并设置行的高度后只需添加列,并设置数据源的datagridviewimage列设定宽度。
dgvEmpInfo.DataSource = ds.Tables[0];
foreach (DataGridViewRow dgvRow in dgvEmpInfo.Rows)
{
dgvRow.Height = 100;
}
Yes.I'll假设你有存储在一个字节数组中的图像:
byte[] bArray = GetRawImageBytes();
// Get an image object from the byte-array
Image ddbImage;
using (var ms = new MemoryStream(bArray, 0, bArray.Length))
{
ms.Write(bArray, 0, bArray.Length);
ddbImage = Image.FromStream(ms, true);
}
// Create a 100x100 thumbnail from the image
var ThumbnailSize = new Size(100, 100);
var thumb = ddbImage.GetThumbnailImage(
ThumbnailSize.Height,
ThumbnailSize.Width,
null, IntPtr.Zero);
// Create an image column for the datagridview
var imgColumn = new DataGridViewImageColumn
{
HeaderText = "Image",
Name = "img"
};
dataGridView1.Columns.Add(imgColumn);
// Add the first row, using this image
dataGridView1.Rows.Add();
dataGridView1.Rows[0].Cells[0].Value = thumb;
// lets set the gridview-height to the thumbnail height
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Height = ThumbnailSize.Height;
}
编辑:为了测试方便切&粘贴代码,这里是一个虚函数会返回一个字节存储在磁盘上的图像的-array:
private byte[] GetRawImageBytes()
{
var img = Image.FromFile(PATH_TO_TEST_IMAGE);
byte[] bArray;
using (var ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
bArray = ms.GetBuffer();
}
return bArray;
}
是的,它的工作but.I有一个简单的解决方案。只需添加一个datagridviewimage列,并设置列的宽度。并设置数据源循环通过每个datagridview行并设置高度后。就是这样。 –
你尝试过什么? – lauCosma