在使用Aspose.PSD的合并或DrawImage方法时,可能会遇到上述的“源数组不够长”错误,这是由于要合并的图片的尺寸比目标图片大造成的。解决方法是在合并或绘制之前,先将目标图片的大小调整为足够大的尺寸,再进行合并或绘制,如下所示:
// 加载目标图片 using (var dstImage = Image.Load(dstFilePath)) { // 创建一个新的图片,将目标图片的尺寸扩展为足够大 using (var newImage = new PsdImage( new PsdOptions(dstImage.Width * 2, dstImage.Height * 2))) { // 将目标图片绘制到新的图片上 newImage.DrawImage(dstImage, new Rectangle(0, 0, dstImage.Width, dstImage.Height), new Rectangle(0, 0, dstImage.Width, dstImage.Height));
// 加载要合并的图片
using (var srcImage = Image.Load(srcFilePath))
{
// 将要合并的图片绘制到新的图片上
newImage.DrawImage(srcImage, new Rectangle(0, 0, srcImage.Width, srcImage.Height),
new Rectangle(dstImage.Width, dstImage.Height, srcImage.Width, srcImage.Height));
// 保存合并后的图片
newImage.Save(dstFilePath, new PsdOptions());
}
}
}