/// <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); }
/// <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); } } }
/// <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) { }
/// <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) { }
/// <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) { }