【发布时间】:2017-03-13 14:06:44
【问题描述】:
在我的应用程序中,我正在合并不同的图像文件,这些文件将成为我的谷歌地图应用程序的标记。这是标记之后的样子
这就是我实现它的方式
foreach (ImageInfo imageInfo in files)
{
System.Drawing.Bitmap image = new System.Drawing.Bitmap(imageInfo.path);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
if (imageInfo.position == ImagePosition.Base)
{
if (imageInfo.isZoomed)
isZoomed = true;
g.DrawImage(image, new System.Drawing.Rectangle(0, 0, image.Width, image.Height));
}
else if (imageInfo.position == ImagePosition.TopRight)
{
g.DrawImage(image, new System.Drawing.Rectangle(image.Width + 70, 10, 200, 200));
}
else if (imageInfo.position == ImagePosition.TopLeft)
{
g.DrawImage(image, new System.Drawing.Rectangle(10, -10, 200, 200));
}
else if (imageInfo.position == ImagePosition.BottomRight)
{
g.DrawImage(image, new System.Drawing.Rectangle(image.Width + 70, image.Height - 40, 200, 200));
}
}
我唯一缺少的是标记周围的阴影,在这里你可以看到我在说什么。上图中的标记周围有一个轻微的阴影。
有人知道怎么实现吗?
【问题讨论】:
-
啊哈,一个控制台应用程序。我已为您添加了该标签,因此您会得到可能提供帮助的人的更多关注。
-
您应该考虑添加 GDI+ 作为标签,因为这与 WinForm 或控制台无关。它只是 GDI+。我真的不明白你所说的影子是什么意思。
-
您是否考虑过使用 Visual / RenderTargetBitmap 来绘制它? (WPF) 你可以在那里使用 DropShadowEffect。
-
您不一定需要 WinForm 或 WPF 项目来使用 WPF 元素。我猜你确实可以像@ManfredRadlwimmer 所说的那样使用 Visual 和 RenderTargetBitmap 。不过,可能需要在您的 Main 方法上设置
[STAThread]。但是由于您使用的是圆形图标,因此您也可以简单地使用它们的宽度/高度作为直径在它们周围画一条弧线。
标签: c# gdi+ gdi windows-console