以及即時通訊渲染相同的路徑2次一次用黑色背景上的白色畫筆和一個用白色背景上的黑色畫筆。當顏色倒置時,相同的路徑呈現不同的大小?
現在的結果應該是相同的圖像,但倒轉的權利?
好錯那對黑色背景繪製的一個是幾個像素大..
DIFF
代碼,我用來繪製這些
PointF[] points = LoadXml<PointF[]>(@"T:\Points.xml");
byte[] types = LoadXml<byte[]>(@"T:\Types.xml");
GraphicsPath path = new GraphicsPath(points, types, FillMode.Alternate);
using (Image image = new Bitmap(45, 45))
{
using (Graphics g = Graphics.FromImage(image))
{
Render(g, Color.White, Color.Black, path);
}
image.Save(@"T:\White.bmp", ImageFormat.Bmp);
}
using (Image image = new Bitmap(45, 45))
{
using (Graphics g = Graphics.FromImage(image))
{
Render(g, Color.Black, Color.White, path);
}
image.Save(@"T:\Black.bmp", ImageFormat.Bmp);
}
private static T LoadXml<T>(string file)
{
System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
using (Stream stream = File.OpenRead(file))
{
return (T)xmlSerializer.Deserialize(stream);
}
}
private static void Render(Graphics g, Color mainColor, Color backColor, GraphicsPath graphicsPath)
{
g.CompositingQuality = CompositingQuality.HighQuality;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBilinear;
g.Clear(backColor);
using (SolidBrush mainBrush = new SolidBrush(mainColor))
{
g.FillPath(mainBrush, graphicsPath);
}
}
有沒有什麼辦法讓他們呈現相同的方式而不修改路徑?
你確定它不只是一個錯覺嗎?看起來和我一樣。 – asawyer 2012-03-09 19:42:32
看看正方形之間的空間,我甚至用一個比較工具來驗證它。添加了一個顯示此差異的圖像。 – Peter 2012-03-09 20:09:44
關閉過濾器併發布圖片 – asawyer 2012-03-09 20:18:52