【发布时间】:2015-09-25 13:07:00
【问题描述】:
所以我创建了一个程序,将100张图片加载到屏幕上,每张图片基本上代表一个对象,让用户选择他们想要的。
问题是应用无法加载 100 张图片而不在我的图片框中留下大量的红色 x。
如何减少每张图片所需的内存量?
编辑:图像实际上并不是纯黑色,我只是还没有使用图像比例来显示我想要的东西。图像尺寸实际上是 4288 x 2848。我不需要在这个屏幕上,一个小比例的图像就可以了。
这是用于拍卖展示。因此,您在此处看到的图像本质上是一个缩略图,它将带您进入拍卖物品的页面。
代码: 使用基础架构/WPF
foreach (var item in Vehicles)
{
BitmapImage b = new BitmapImage();
b.BeginInit();
b.UriSource = new Uri(item.OverviewImage);
b.EndInit();
var addTile = new XamTile
{
Content = new Image { Source = b}
};
tileManager.Items.Add(addTile);
}
我尝试过的其他代码,没有使用 infragistics/C#
public List<Vehicle> Vehicles { get; set; }
private int count = 0;
public AuctionScreen()
{
InitializeComponent();
Vehicles = new List<Vehicle>();
}
private void AuctionScreen_Load(object sender, EventArgs e)
{
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
var m = new PictureBox();
m.ImageLocation = Vehicles[count].OverviewImage;
flowLayoutPanel1.Controls.Add(m);
if (count > Vehicles.Count)
{
timer1.Stop();
}
}
【问题讨论】:
-
每张图片的尺寸是多少?他们真的是黑人吗(或者这只是一个隐私问题)?
-
请发布您的代码
-
如果您的问题确实是 “我如何以一种形式显示 100 张 12 兆像素的图像”,您可能需要重新考虑您的方法。一张一张地加载图片,适当地缩小它们,然后将它们渲染到一些画布上(你真的不希望一个表单上有 100 个图片框)。这不是微不足道的,会表现得很糟糕而且问题太宽泛,请尝试做一些研究。
-
@CodeCaster 我已经进行了研究,而你说我没有,这令人沮丧。我已经为此工作了 2 天,最后在这里发布了一个问题,希望得到帮助,而不是说做更多研究的评论。我显然对如何渲染图像知之甚少,也无法将所有内容放在一个有凝聚力的解决方案中。 “这不是微不足道的”..如果是的话,我就不会在这里了。