保存位图时Alpha值不会保持不变
大家早上好,
我正在为大学制作一个图像隐写术项目。 同时隐藏图像中的数据。 我正在编写“文本长度”,它是像素中的Int32。 因为Int32是4个字节。 我想我可以在Alpha,Red,Green,Blue的4个字节中写出它,因为每种颜色都是1个字节。 然后我以bmp格式保存图像。 我使用单步执行和数据获取正确分布并在像素中设置。
当我回读像素时出现问题。 R,G,B有我们设定的价值。 但无论它设置什么,alpha总是255。
我用来将Int32分配到4个字节的代码是
byte R, G, B, A; int colorValue = messageLength; int first = colorValue & 255; //R contains bit 0-7 means the least significant 8 bits R = (byte)first; colorValue = colorValue - first; int second = colorValue & 65535; colorValue = colorValue - second; second = second >> 8; //G contains 8-15 G = (byte)second; int third = colorValue & 16777215; colorValue = colorValue - third; third = third >> 16; //B contains 16-23 B = (byte)third; colorValue = colorValue >> 24; //A contains 24-31 A = (byte)colorValue; pixelColor = Color.FromArgb(A, R, G, B); bitmap.SetPixel(location.X, location.Y, pixelColor);
获取值的代码是
byte R, G, B, A; R = pixelColor.R; G = pixelColor.G; B = pixelColor.B; A = pixelColor.A; messageLength = A; messageLength = messageLength << 8; messageLength += B; messageLength = messageLength << 8; messageLength += G; messageLength = messageLength << 8; messageLength += R;
有什么我想念的东西。 是BMP不允许alpha值持续??? 请帮忙。 谢谢。
很抱歉,Bitmap不支持alpha值。
上述就是C#学习教程:保存位图时Alpha值不会保持不变分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1012436.html