draw-image port image to-x to-y &rest args &key from-x from-y to-width to-height from-width from-height global-alpha
A graphics port.
An image.
Real numbers.
graphics-state parameters passed as keyword arguments.
Real numbers.
A real number in the inclusive range [0,1], or nil
.
The function draw-image
displays
image
on the port at
to-x
to-y
.
The default value of from-x and from-y is 0. The from-width and from-height arguments default to the size of the image. In addition, to-width defaults to from-width and to-height defaults to from-height .
When
port
's
drawing-mode
is :compatible
, graphics state translation is guaranteed to be supported but support for scaling and rotation are library dependent. Specifically, scaling is supported in the Windows, Cocoa and GTK+ implementations, but not on X11/Motif.
When
port
's
drawing-mode
is :quality
, the target coordinates are fully transformed according to the transformation in the graphics-state.
For more information about drawing-mode , see The drawing mode and anti-aliasing.
global-alpha
, if non-nil, is a blending factor that applies to the whole image, in the Windows and Cocoa implementations, but not on X11/Motif or GTK+. The value 0 means use only the target (that is, do not draw anything) and the value 1 means use only the source (that is, normal drawing). Intermediate real values mean use proportions of both the target and source. The value nil
also means normal drawing, and this is the default value.
On Microsoft Windows, if the image was loaded from a .ico file then draw-image
ignores
from-x
,
from-y
,
from-width
,
from-height
and the graphics-state
operation
when drawing the image, and also
global-alpha
is ignored.
In LispWorks 6.1 and earlier versions, the to-width and to-height arguments defaulted to the size of the image and from-width defaulted to to-width and from-height defaulted to to-height .
This example scales an image with various values of from-width , to-width , from-height and to-height . It illustrates the effect of the default of these value which has changed since LispWorks 6.1:
(example-edit-file "capi/graphics/image-scaling")
Draw the whole image at (10 20) without scaling:
(gp:draw-image port image 10 20)
Draw the whole image at (10 20) scaling it to 100x200:
(gp:draw-image port image 10 20
:to-width 100
:to-height 200)
Draw a 16x32 pixel rectangle from (60 80) in the image at (10 20) without scaling:
(gp:draw-image port image 10 20
:from-x 60
:from-y 80
:from-width 16
:from-height 32)
Draw a 16x32 pixel rectangle from (60 80) in the image at (10 20) scaling it to 100x200:
(gp:draw-image port image 10 20
:from-x 60
:from-y 80
:from-width 16
:from-height 32
:to-width 100
:to-height 200)
CAPI User Guide and Reference Manual (Windows version) - 3 Aug 2017