使用MVC3 / WebMatrix版本中的WebImage。从文件路径加载以下图像:
- 或 -
针对它运行以下代码:
return new WebImage(path)
.Resize(120, 265)
.GetBytes("Png");
在剥离透明度并使用黑色的图像中产生结果:
RotateRight(),RotateLeft()和FlipHorizantal()也是如此。但是,如果我不调用.Resize()方法:
return new WebImage(path)
.GetBytes("Png");
图像的返回没有问题。
答案 0 :(得分:2)
您的图片是8位(索引颜色)吗? 调整8位图像的大小时,它们通常会从索引颜色转换为RGB,以使结果看起来更平滑。在不更改颜色表的情况下调整图像大小很少结束。
如果图像已经是RGB(24位或更多),那就更复杂了:在“透明”和“不透明”之间的边界上,缩放器应该对图像的边缘做什么?许多调整大小算法会在边界处执行类似“平均两种颜色”的操作(同样,为了使图像看起来更平滑),但大多数都没有透明度的概念,更不用说PNG具有多层次半透明的能力。
所以,简短的回答是“它可能是一个错误” - 而不是PNG功能的完整实现。
解决方案可能不存在,但我会尝试:
答案 1 :(得分:0)
您是否尝试使用方法Write()
代替GetBytes()
?