Как наложить одно изображение растрового изображения на другое в GDI+?
Вопрос
Используя GDI+, я сделал BMP с тепловой картой, и я хотел бы наложить ее на вершину моей карты BMP. Я сохранил два BMP на диск, и они выглядят хорошо, мне просто нужен способ собрать их вместе. Есть ли способ сделать это, возможно, используя графический объект? Как вовлечена прозрачность/ALPA?
Я очень новичок в программировании GDI, поэтому, пожалуйста, будьте как можно более конкретны.
ОК - вот ответ. В какой -то момент мне нужно узнать, как работает GDI+ ...
Я не мог обойти проблемы с транспортом, но это работает. Это просто копирует небелые пиксели с наложения на карту:
for (int x = 0; x < map.Width; x++)
for (int y = 0; y < map.Height; y++) {
Color c = overlay.GetPixel(x, y);
if ((c.A != 255) || (c.B != 255) || (c.G != 255) || (c.R != 255))
map.SetPixel(x, y, c);
Решение
Это должно выполнять работу ...
На данный момент изображение, которое вы хотите нагрузить на главное изображение, будет расположена в верхнем левом углу основного изображения, отсюда new Point(0,0)
. Анкет Однако вы можете изменить это, чтобы найти изображение везде, где вы хотите.
void SuperimposeImage()
{
//load both images
Image mainImage = Bitmap.FromFile("PathOfImageGoesHere");
Image imposeImage = Bitmap.FromFile("PathOfImageGoesHere");
//create graphics from main image
using (Graphics g = Graphics.FromImage(mainImage))
{
//draw other image on top of main Image
g.DrawImage(imposeImage, new Point(0, 0));
//save new image
mainImage.Save("OutputFileName");
}
}