silverlight中怎么实现两张图片拼接问题

zwb65300297 zwb65300297 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在深蓝色的教程中有真么个方法是在wpf中使用的
/// <summary>

/// 拼装角色+装备后切割成系列帧图片并保存进内存(装备角色)

/// </summary>

/// <param name="Equipment">装备代号数组</param>

/// <param name="rowNum">帧合成图行数</param>

/// <param name="colNum">帧合成图列数</param>

/// <param name="totalWidth">帧图合成后总宽</param>

/// <param name="totalHeight">帧图合成后总高</param>

/// <param name="singleWidth">单帧图宽</param>

/// <param name="singleHeight">单帧图高</param>

/// <returns>如果缓存中有则读取缓存,否则返回合成的图片源</returns>

public static BitmapSource[,] EquipPart(int[] Equipment, int rowNum, int colNum, int totalWidth, int totalHeight, int singleWidth, int singleHeight) {

//Equipment[0]为衣服代号,Equipment[1]为武器代号,本例中装备只由衣服+武器组成

//假如内存中没有该装备的角色现成图片源则进行读取

if (PartImage[Equipment[0], Equipment[1]] == null) {

BitmapSource[,] bitmap = new BitmapSource[rowNum, colNum];

//加载角色衣服(身体)大图

BitmapSource bitmapSource = new BitmapImage(new Uri(@"Images\Body" + Equipment[0].ToString() + ".gif", UriKind.Relative));

//假如武器不是0,即如果角色手上有武器而非空手

if (Equipment[1] != 0) {

//加载武器大图,并与衣服大图组装

BitmapSource bitmapSource1 = new BitmapImage(new Uri(@"Images\Weapon" + Equipment[1].ToString() + ".gif", UriKind.Relative));

DrawingVisual drawingVisual = new DrawingVisual();

Rect rect = new Rect(0, 0, totalWidth, totalHeight);

DrawingContext drawingContext = drawingVisual.RenderOpen();

drawingContext.DrawImage(bitmapSource, rect);

drawingContext.DrawImage(bitmapSource1, rect);

drawingContext.Close();

RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap(totalWidth, totalHeight, 0, 0, PixelFormats.Pbgra32);

renderTargetBitmap.Render(drawingVisual);

bitmapSource = renderTargetBitmap;

//降低图片质量以提高系统性能(由于本身图片已经为低质量的gif类型,因此效果不大)

//RenderOptions.SetBitmapScalingMode(bitmapSource, BitmapScalingMode.LowQuality);

}

for (int i = 0; i < rowNum; i++) {

for (int j = 0; j < colNum; j++) {

bitmap[i, j] = new CroppedBitmap(bitmapSource, new Int32Rect(j * singleWidth, i * singleHeight, singleWidth, singleHeight));

}

}

//将装备合成图放进内存

PartImage[Equipment[0], Equipment[1]] = bitmap;

return bitmap;

} else {

//如果内存中已存在该装备的角色图片源则从内存中返回合成图,极大提高性能

return PartImage[Equipment[0], Equipment[1]];

}

}

不知在SL中怎么实现同样的功能
...全文

相关推荐

Silverlight实现的图片放大效果

Silverlight实现的图片放大效果

xiaomusheng

Silverlight技术考古:富客户端演进史与现代工程启示

富客户端(Rich Client)是Web交互体验升级的关键范式,其核心原理在于将计算、渲染与状态管理部分前移至浏览器端,以降低延迟、提升响应性。Silverlight作为.NET生态下的典型富客户端技术,曾通过XAML声明式界面、C#强类型逻辑和深度WCF集成,实现高性能矢量动画、实时数据同步与离线能力。其技术价值不仅体现在当年DeepEarth地图的瓦片预测加载、Hard Rock电商的混合架构设计,更在于为现代WebAssembly、PWA及Electron等方案提供了可复用的资源调度、UI虚拟化与跨

diaojin6880

silverlight实现图片公告栏

在原来作者实现的图片公告栏基础上做了修改,在silverlight4中完善了原作者的程序

tjduruiboy

Silverlight实现的多图片列表框

Silverlight实现的多图片列表框

雪舞芳茕

[图片动画]Silverlight相册源码_slalbum.zip源码ASP.NET网站源码打包下载

[图片动画]Silverlight相册源码_slalbum.zip源码ASP.NET网站源码打包下载[图片动画]Silverlight相册源码_slalbum.zip源码ASP.NET网站源码打包下载[图片动画]Silverlight相册源码_slalbum.zip源码ASP.NET网站源码打包下载[图片动画]Silverlight相册源码_slalbum.zip源码ASP.NET网站源码打包下载 1.合个人学习技术做项目参考合个人学习技术做项目参考 2.适合学生做毕业设计项目参考适合学生做毕业设计项目技术参考 3.适合小团队开发项目技术参考适合小团队开发项目技术参考

yxkfw
评论 2
收藏 已收藏
分享
返回顶部
zwb65300297
WPF/Silverlight 8,757 成员 12,031 内容