PNG не так уж и сложен, Delphi 2009 включает в себя TPNGImage.
Для GIF вы можете использовать GDI + или компонент TGifImage ...
Вот код:
procedure Test;
var
p : TPicture;
png : TPngImage;
begin
try
p := TPicture.Create;
p.LoadFromFile('c:\INPUT.WMF');
png := TPngImage.CreateBlank(COLOR_RGB, 8, p.Width, p.Height);
png.Canvas.Draw(0,0, p.Graphic);
png.SaveToFile('C:\OUTPUT.png');
finally
Free(p);
Free(png);
end;
end;