Esempio n. 1
0
 /// <summary>
 /// Initializes a new instance of the <c>Image</c> class.
 /// </summary>
 /// <param name="imageDefinition">Image definition.</param>
 /// <param name="position">Image <see cref="Vector3">position</see> in world coordinates.</param>
 public Image(ImageDef imageDefinition, Vector3 position)
     : base(EntityType.Image, DxfObjectCode.Image)
 {
     this.imageDef         = imageDefinition;
     this.position         = position;
     this.width            = imageDefinition.Width * imageDefinition.OnePixelSize.X;
     this.height           = imageDefinition.Height * imageDefinition.OnePixelSize.Y;
     this.rotation         = 0;
     this.clipping         = false;
     this.brightness       = 50.0f;
     this.contrast         = 50.0f;
     this.fade             = 0.0f;
     this.displayOptions   = ImageDisplayFlags.ShowImage | ImageDisplayFlags.ShowImageWhenNotAlignedWithScreen | ImageDisplayFlags.UseClippingBoundary;
     this.clippingBoundary = new ImageClippingBoundary(-0.5, -0.5, imageDefinition.Width, imageDefinition.Height);
 }
Esempio n. 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="doc"></param>
        /// <param name="image"></param>
        /// <param name="dx"></param>
        /// <param name="dy"></param>
        /// <param name="db"></param>
        /// <param name="r"></param>
        public void Draw(object doc, Core2D.XImage image, double dx, double dy, ImmutableArray <Core2D.ShapeProperty> db, Core2D.Record r)
        {
            var _doc = doc as DxfDocument;

            var bytes = _state.ImageCache.GetImage(image.Path);

            if (bytes != null)
            {
                var rect = Core2D.Rect2.Create(image.TopLeft, image.BottomRight, dx, dy);

                if (_enableImageCache &&
                    _biCache.ContainsKey(image.Path))
                {
                    var dxfImageDefinition = _biCache[image.Path];
                    var dxfImage           = new Image(
                        dxfImageDefinition,
                        new Vector3(ToDxfX(rect.X), ToDxfY(rect.Y + rect.Height), 0),
                        rect.Width,
                        rect.Height);
                    _doc.AddEntity(dxfImage);
                }
                else
                {
                    if (_state.ImageCache == null || string.IsNullOrEmpty(image.Path))
                    {
                        return;
                    }

                    var path = System.IO.Path.Combine(_outputPath, System.IO.Path.GetFileName(image.Path));
                    System.IO.File.WriteAllBytes(path, bytes);
                    var dxfImageDefinition = new ImageDef(path);

                    if (_enableImageCache)
                    {
                        _biCache[image.Path] = dxfImageDefinition;
                    }

                    var dxfImage = new Image(
                        dxfImageDefinition,
                        new Vector3(ToDxfX(rect.X), ToDxfY(rect.Y + rect.Height), 0),
                        rect.Width,
                        rect.Height);
                    _doc.AddEntity(dxfImage);
                }
            }
        }
Esempio n. 3
0
 /// <summary>
 /// Initializes a new instance of the <c>Image</c> class.
 /// </summary>
 /// <param name="imageDefinition">Image definition.</param>
 /// <param name="position">Image <see cref="Vector2">position</see> in world coordinates.</param>
 /// <param name="width">Image width in world coordinates.</param>
 /// <param name="height">Image height in world coordinates.</param>
 public Image(ImageDef imageDefinition, Vector2 position, double width, double height)
     : this(imageDefinition, new Vector3(position.X, position.Y, 0.0), width, height)
 {
 }
Esempio n. 4
0
 /// <summary>
 /// Initializes a new instance of the <c>Image</c> class.
 /// </summary>
 /// <param name="imageDefinition">Image definition.</param>
 /// <param name="position">Image <see cref="Vector3">position</see> in world coordinates.</param>
 /// <param name="size">Image <see cref="Vector2">size</see> in world coordinates.</param>
 public Image(ImageDef imageDefinition, Vector3 position, Vector2 size)
     : this(imageDefinition, position, size.X, size.Y)
 {
 }
Esempio n. 5
0
 /// <summary>
 /// Initializes a new instance of the <c>Image</c> class.
 /// </summary>
 /// <param name="imageDefinition">Image definition.</param>
 /// <param name="position">Image <see cref="Vector2">position</see> in world coordinates.</param>
 /// <param name="size">Image <see cref="Vector2">size</see> in world coordinates.</param>
 public Image(ImageDef imageDefinition, Vector2 position, Vector2 size)
     : this(imageDefinition, new Vector3(position.X, position.Y, 0.0), size.X, size.Y)
 {
 }