在位图上均匀定位多个图像

时间:2014-11-19 13:20:26

标签: c# system.drawing

我试图将一些图像放在一个固定大小Image上。固定Image的大小为200 x 200(像素)。让我们假设我的List<Image>包含3张图片。前两个图像的定位应该彼此相邻并且位于固定Image的顶部。第三个Image应该在&#34;第二个&#34;在前2个图像下方居中并居中。对于图像列表中的任意数量的图像,该图案需要重复。假设列表包含4个图像,则前2个在第一行上彼此相邻地呈现,第二个2在第二行上彼此相邻地呈现,依此类推。 这是我到目前为止所尝试的,但定位到处都是:

Bitmap finalIcon = new Bitmap(200, 200);
Image imgFinalIcon = (Image)finalIcon;
using (Graphics g = Graphics.FromImage(imgFinalIcon))
{
    int xOffSet = 0;
    int item = 1;
    foreach (Image icon in iconList)
    {
        int yOffset = 0;
        if (item > 2 && (iconList.Count() % 2 != 0))
        {
            yOffset = imgFinalIcon.Height / 2;
        }
        else
        {
            yOffset = (imgFinalIcon.Height / 2) / 2;
        }
        g.DrawImage(icon, xOffSet, yOffset);
        xOffSet += icon.Width;
        item++;
    }
 }

iconList是我的图片列表。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

据我所知,你不会增加y-Offset。

尝试:

yOffset += icon.height;

在顶部显示2张图像或在下方显示居中图像后

你的yOffset是本地的,只存在于循环中,当新的循环交互开始时,它始终设置为0。但它在循环之外。