110,566
社区成员
发帖
与我相关
我的任务
分享
public static Bitmap[] getPics(Image img,int picRows,int picCols)
{
//初始化次图片个数
int imgCount =picRows*picCols;
Bitmap[] allImgs =new Bitmap[imgCount];
//处理图片
Bitmap srcImg = new Bitmap(img);
srcImg.MakeTransparent(Color.FromArgb(255,0,255));
//剪切器
Rectangle sourceRectangle ;
//每个图片高宽
int picWidth=srcImg.Width/picCols;
int picHeight =srcImg.Height/picRows;
//剪切位置
int x = 0;
int y = 0;
for (int i = 0; i < imgCount; i++)
{
sourceRectangle = new Rectangle(x,y,picWidth,picHeight);
allImgs[i] = srcImg.Clone(sourceRectangle,System.Drawing.Imaging.PixelFormat.DontCare);
if(x<srcImg.Width-picWidth)
{
x =x +picWidth;
}
else
{
x = 0;
y = y +picHeight;
}
}
return allImgs;
}
private int i = 0;
public override void drawSelf(Graphics g)
{
g.DrawImage(this.ElementPics[i], this.X, this.Y);
if (i < this.ElementPics.Length - 1)
{
i++;
}
else
{
i = 0;
}
}