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; } }
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.