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

本文关键字:图像 定位 位图 | 更新日期: 2023-09-27 18:30:56

我正在尝试将许多图像定位到单个固定大小的Image上。固定Image的大小为 200 x 200(像素)。假设我的List<Image>包含 3 张图像。前 2 张图像的位置应彼此相邻并位于固定Image的顶部。第三Image应呈现在"第二"行上,并在前 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是我的图像列表。请帮忙吗?

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

据我所知,您不会增加 y 偏移量。

尝试:

yOffset += icon.height;

在顶部显示 2 张图像后或显示下面的居中图像后。

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