如果我从RGB 8位复制一个区域从Photoshop到Clipboard.GetImage()
有黑白图像,但如果我将其更改为索引模式(256)GetImage
返回一个彩色图像。c#Clipboard.GetImage()从Photoshop区域返回ab/w图像
我也尝试过使用GetDataObject
方法,但结果相同。看来图像格式是memoryBMP,但在RGB/8格式,所以我无法获得全彩色图像。
如何从Photoshop剪贴板格式检索彩色图像回到我的C#应用程序?
这是我正在使用的代码。该图像被保存,但..
如果我复制像素从在Photoshop模式的图像
RGB/8
其保存为b /瓦。如果模式为
index
(256色),则会节省颜色。
数据的图像格式的类型为:
[ImageFormat: b96b3caa-0728-11d3-9d7b-0000f81ef32e] MemoryBMP
以下是我的C#代码...
IDataObject data = Clipboard.GetDataObject();
if (data.GetDataPresent(DataFormats.Dib))
{
Bitmap image = (System.Drawing.Image)data.GetData(DataFormats.Dib, false) as Bitmap;
var encoder = ImageCodecInfo.GetImageEncoders().First(c => c.FormatID == ImageFormat.Jpeg.Guid);
var encParams = new EncoderParameters(1);
encParams.Param[0] = new EncoderParameter(Encoder.ColorDepth, 24L);
image.Save("encode.jpg", encoder, encParams);
}
我没有downvote,但我认为你必须**显示一些可测试代码**,以允许其他人重新创建和/或修复你的问题...... PS:记住RGB 8位是真的的24位颜色(因为8位红色+8绿色+8蓝色)。如果这样可以帮助你。 –
感谢您的回答。我的第一篇文章,学习规则... – alexeef
您的帖子下有一个小[**'edit' **](https://stackoverflow.com/posts/46576473/edit)按钮。或者只是使用链接(添加'/编辑'到页面url):https://stackoverflow.com/posts/46576473/edit –