我正在尝试调整 RGB 8 位 Tif 的大小并在 c# 中保持它的透明度。我试过下面的代码。
using (Image thumbnail = new Bitmap(1500, 1500))
{
using (Bitmap source = new Bitmap(@"c:\trans.tif"))
{
using (Graphics g = Graphics.FromImage(thumbnail))
{
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
g.Clear(Color.Transparent);
g.DrawImage(source, 0, 0, 1500, 1500);
}
}
thumbnail.Save(@"c:\testoutput.tif", ImageFormat.Tiff);
//using (MemoryStream ms = new MemoryStream())
//{
// //thumbnail.Save(ms, ImageFormat.Tiff);
// //
// //result = ms.ToArray();
//}
}
该图像是使用 photoshop 创建的,我不明白为什么它在调整大小的 tiff 上没有保持透明度。
有任何想法吗?
最佳答案
当您将 Image thumbnail
设置为至少 32bpp argb 时,您需要将 pixelformat 设置为:
new Bitmap(1500, 1500, PixelFormat.Format32bppPArgb)
编辑:
更好的是,从
source
中获取它,这样你就得到了完全相同的,只是意味着反转你的 using
s关于c# - 调整 tiff 大小并保持透明度和 C#,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3372326/