static void Main(string[] args) { FuseTwoImages("http://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer/export?dpi=96&transparent=true&format=png8&bbox=633494.6405943877,5612180.331083226,1416209.810234554,6152742.995115967&bboxSR=102100&imageSR=102100&size=1280,884&f=image", 100.0f, "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Population_World/MapServer/export?dpi=96&transparent=true&format=png8&bbox=633494.6405943877,5612180.331083226,1416209.810234554,6152742.995115967&bboxSR=102100&imageSR=102100&size=1280,884&f=image", 50.0f); } public static void FuseTwoImages(string baseImageUrl, float baseImageOpacity, string topImageUrl, float topImageOpacity) { Graphics graphics = null; try { Bitmap imageBaseMap = new Bitmap(WebRequest.Create(baseImageUrl).GetResponse().GetResponseStream()); SetImageOpacity(imageBaseMap, (float)topImageOpacity); Bitmap bitmapFirst = new Bitmap(new Bitmap(imageBaseMap)); graphics = Graphics.FromImage(bitmapFirst); Bitmap bitmapSecond = new Bitmap(WebRequest.Create(topImageUrl).GetResponse().GetResponseStream()); Image image = SetImageOpacity(bitmapSecond, (float)topImageOpacity); graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBilinear; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; graphics.DrawImage(image, new Point(0, 0)); bitmapFirst.Save(@c:\temp\_ags_ + Guid.NewGuid().ToString() + ".png", ImageFormat.Png); } catch (Exception) { } finally { graphics.Dispose(); } } public static Image SetImageOpacity(Image image, float opacity) { try { //create a Bitmap the size of the image provided Bitmap bmp = new Bitmap(image.Width, image.Height); //create a graphics object from the image using (Graphics gfx = Graphics.FromImage(bmp)) { //create a color matrix object ColorMatrix matrix = new ColorMatrix(); //set the opacity matrix.Matrix33 = opacity; //create image attributes ImageAttributes attributes = new ImageAttributes(); //set the color(opacity) of the image attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); //now draw the image gfx.DrawImage(image, new Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, image.Width, image.Height, GraphicsUnit.Pixel, attributes); } return bmp; } catch { return null; } }
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.