在现有图像(网络)上叠加图像

时间:2011-12-29 23:16:01

标签: c# asp.net

我的目标是在网页的一个部分中显示一个大的矩形图像,该图像将作为其他较小图像的背景。将基于数据库条目动态地选择较小的矩形图像。我能够创建一个java applet,绘制较大的基本矩形图像,然后在基本图像上绘制较小的图像。这非常有效。

我正在尝试使用Microsoft Visual Web Developer 2010中的C#重新创建功能。我发现system.drawing在功能上可能有用,但还没有找到基于Web的解决方案。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:7)

如果我理解正确,您希望将较小的图像叠加在另一个图像的顶部。最后,您将最终显示一个图像。这在C#中很容易做到:

string image1 = @"c:\image.jpg";
string image2 = @"c:\image2.jpg";

System.Drawing.Image canvas = Bitmap.FromFile( image1 );
Graphics gra = Graphics.FromImage( canvas );
Bitmap smallImg = new Bitmap(image2);
gra.DrawImage( smallImg, new Point( 70, 70 ) );
canvas.Save( @"c:\newimage.jpg", System.Drawing.Imaging.ImageFormat.Jpeg );

答案 1 :(得分:0)

我的两分钱......在.NET 2.0和3.0上帮助我的另一件事是在完成后明确删除了Image,Graphics和Bitmap对象,特别是在你访问任何图像源时{{{在同一个例程中,1}},image1image2

删除这些对象将立即释放文件锁。我经历过垃圾收集器不一定会在理想的时间为我清理它们,即使我为我的图像处理做了一个单独的子程序。