修改字节在图像中添加黑色区域左和右
本文关键字:区域 黑色 添加 字节 图像 修改 | 更新日期: 2023-09-27 18:14:42
我有一个包含图像字节的byte[]
对象。我需要填充图像,在左边和右边添加黑色区域。我的图像是512高,384宽,我需要使它512X512,也就是说,我需要添加128列,左边64列,右边64列。
我认为我需要首先将所有图像字节复制到列65到448(这使我的384宽度图像),然后在左侧添加64列,在右侧添加64列。
我不太确定如何做到这一点,我想一个嵌套的for就足够了,但不确定。
我正在用c#编程
已经用Photoshop生成的原始图像进行了测试,它似乎工作正常。很明显,它的设计只适用于你的具体情况,因为我不确定你想要达到什么目标,但我相信你可以改进它:)
public byte[] FixImage(byte[] imageData, int bitsPerPixel)
{
int bytesPerPixel = bitsPerPixel / 8;
List<byte> data = new List<byte>();
for (int i = 0; i < imageData.Length; i += 384 * bytesPerPixel)
{
data.AddRange(new byte[64*bytesPerPixel]);
data.AddRange(imageData.Skip(i).Take(384 * bytesPerPixel));
data.AddRange(new byte[64 * bytesPerPixel]);
}
return data.ToArray();
}
如果你最终使用比原始字节数组更复杂的格式,可能值得研究使用System.Drawing中的GDI函数。如果你想要一个例子,请告诉我。