在.NET中提取图像的一部分

use*_*484 4 .net c# vb.net image playing-cards

我有一副牌的PNG作为1张图像(它将所有52张卡合并为1张图像文件).如何根据需要提取单个卡(或在启动时将它们全部提取到单独的图像文件中).

我理解知道哪个行和列得到的逻辑,它是我遇到麻烦的实际图像处理代码.

我正在使用Visual Studio 2010并使用VB(尽管任何.NET语言中的示例代码都可以).

我不允许发布图像本身,但这是一个示例图像

http://www.jfitz.com/cards/windows-playing-cards.png

谢谢.

Sco*_*ott 6

这将加载原件并创建一个从(0,0)开始并且尺寸为100x100的裁剪版本.您必须编写逻辑来迭代每张卡片,知道何时移动到下一行等等.但是,这应该可以帮助您在知道坐标和尺寸后拔出卡片.

Bitmap cards = new Bitmap(@"C:\SomePath\");
Rectangle srcRect = new Rectangle(0, 0, 100, 100);
Bitmap card = (Bitmap)cards.Clone(srcRect, cards.PixelFormat);
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我没有包含对card.Save()的调用,因为在保存期间有很多选项需要设置,这有点超出了你的问题范围.但是,有关如何将其保存到磁盘的信息,请参阅http://msdn.microsoft.com/en-us/library/ytz20d80.aspx.