Example #1
0
        private Placemark PlacemarkFromPicture(PictureMetaData pic)
        {
            if (pic.GpsLongitude == null || pic.GpsLatitude == null)
            {
                return(null);
            }

            Placemark p = new Placemark();

            p.Name        = pic.IptcObjectName;
            p.Description = pic.IptcCaption;
            p.Latitude    = (double)pic.GpsLatitude.GetValue(pic.GpsLatitudeRef == "S");
            p.Longitude   = (double)pic.GpsLongitude.GetValue(pic.GpsLongitudeRef == "W");
            p.Tilt        = Settings.Default.KmzTilt;
            p.Heading     = Settings.Default.KmzHeading;
            p.Range       = Settings.Default.KmzRange;

            ImageResize.Dimensions d;
            if (pic.Image.Height > pic.Image.Width)
            {
                d = ImageResize.Dimensions.Height;
            }
            else
            {
                d = ImageResize.Dimensions.Width;
            }

            Image i = ImageResize.ConstrainProportions(pic.Image, Settings.Default.KmzPictureSize, d);

            p.SetImage(new FileInfo(pic.Filename).Name, i);

            return(p);
        }
        private static Bitmap ResizeOrCropImage(Image bitmap, int width, int height, bool isFixed)
        {
            Bitmap result;

            if (width >= bitmap.Width && height >= bitmap.Height && !isFixed)
            {
                result = null;
            }
            else
            {
                Image tmpImage = bitmap;

                // Crop
                if (width > 0 && height > 0)
                {
                    tmpImage = isFixed
                        ? ImageResize.FixedSize(tmpImage, width, height, Color.White)
                        : ImageResize.Crop(tmpImage, width, height, ImageResize.AnchorPosition.Center);
                }

                // Resize
                if (width > 0 && width < bitmap.Width)
                {
                    tmpImage = ImageResize.ConstrainProportions(tmpImage, width, ImageResize.Dimensions.Width);
                }
                else if (height > 0 && height < bitmap.Height)
                {
                    tmpImage = ImageResize.ConstrainProportions(tmpImage, height, ImageResize.Dimensions.Height);
                }

                result = (Bitmap)tmpImage;
            }

            return(result);
        }
        private Image CreateThumbnail(string name)
        {
            name = name.ToLower();
            Image i    = null;
            Image iRes = null;

            try
            {
                FileStream fs = new FileStream(name, FileMode.Open, FileAccess.Read);
                i = Image.FromStream(fs);

                double pHeight = (double)i.Height / thumbnailSize.Height;
                double pWidth  = (double)i.Width / thumbnailSize.Width;
                if (pHeight > pWidth)
                {
                    iRes = ImageResize.ConstrainProportions(i, thumbnailSize.Height, ImageResize.Dimensions.Height);
                }
                else
                {
                    iRes = ImageResize.ConstrainProportions(i, thumbnailSize.Width, ImageResize.Dimensions.Width);
                }

                fs.Close();
                fs.Dispose();

                sema.WaitOne();
                if (images.ContainsKey(name))
                {
                    images[name] = iRes;
                }
                else
                {
                    images.Add(name, iRes);
                }
                sema.Release();
            }
            catch
            {}

            return(iRes);
        }