将图像分成几块银光窗口手机

时间:2012-06-19 20:13:41

标签: c# silverlight image windows-phone-7 split

我想使用Silverlight for Windows phone 7.5将图像分割成几个较小的图像。

首先,我想知道这是否可能(我最近对Windows Phone API有一些令人不快的意外),如果是,请给我一些例子,因为我能找到完全没有。< / p>

感谢您的帮助。

3 个答案:

答案 0 :(得分:4)

WriteableBitmapEx与Windows Phone兼容,并且使用Crop方法完成此操作。您只需要进行数学计算就可以确定要裁剪的宽/高和X / Y坐标。

//this creates the four quadrants of sourceBitmap as new bitmaps

int halfWidth = sourceBitmap.PixelWidth / 2;
int halfHeight = sourceBitmap.PixelHeight / 2;

WriteableBitmap topLeft = sourceBitmap.Crop(0, 0, halfWidth, halfHeight);
WriteableBitmap topRight = sourceBitmap.Crop(halfWidth, 0, halfWidth, halfHeight);
WriteableBitmap bottomLeft = sourceBitmap.Crop(0, halfHeight, halfWidth, halfHeight);
WriteableBitmap bottomRight = sourceBitmap.Crop(halfWidth, halfHeight, halfWidth, halfHeight);

在上面的示例中,我可能会被一个像素(没有测试)关闭,但它应该演示API。

答案 1 :(得分:0)

您可以将Silverlight项目与XNA结合使用,并使用spritebatch.Draw()。 它有一个源矩形参数,可以让你从图像中绘制一个部分。

MSDN对如何组合silverlight和XNA有一些帮助。 http://msdn.microsoft.com/en-us/library/hh202938(v=vs.92).aspx

答案 2 :(得分:0)

结合使用ScaleTransform和TranslateTransform来渲染正确的部分。

ScaleTransform(numXTiles,numYTiles)

翻译(xTileIndex / numXTiles,yTileIndex / numYTiles);

将ImageControl放在网格中以进行剪裁