Platforms to show: All Mac Windows Linux Cross-Platform

Back to NSGraphicsMBS class.

NSGraphicsMBS.drawAtPoint(image as NSImageMBS, x as Double, y as Double, sx as Double, sy as Double, sw as Double, sh as Double, Operation as Integer, fraction as Double)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 7.7 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws all or part of the image at the specified point in the current coordinate system.

x/y: The location in the current coordinate system at which to draw the image.
sx/sy/sw/sh: The source rectangle specifying the portion of the image you want to draw. The coordinates of this rectangle are specified in the image's own coordinate system. If you pass in zeros, the entire image is drawn.
operation: The compositing operation to use when drawing the image. See the NSCompositingOperation constants.
fraction: The opacity of the image, specified as a value from 0.0 to 1.0. Specifying a value of 0.0 draws the image as fully transparent while a value of 1.0 draws the image as fully opaque. Values greater than 1.0 are interpreted as 1.0.

The image content is drawn at its current resolution and is not scaled unless the CTM of the current coordinate system itself contains a scaling factor. The image is otherwise positioned and oriented using the current coordinate system.

For Operation you use the Composite constants in this class.
In the Cocoa world the y axis is reversed. y=0 is on the bottom.

See also:

Some examples using this method:

NSGraphicsMBS.drawAtPoint(text as NSAttributedStringMBS, point as NSPointMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 12.4 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the receiver with its font and other display attributes at the given point in the currently focused view.
Example
// create Hello World in red
Var a as NSAttributedStringMBS = NSAttributedStringMBS.attributedStringWithString("Hello World")
Var m as NSMutableAttributedStringMBS = a.mutableCopy

m.addAttribute(a.NSForegroundColorAttributeName, NSColorMBS.redColor, new NSRangeMBS(0, m.length))

// put it in a textarea
TextArea1.NSTextViewMBS.textStorage.setAttributedString m

// draw in Canvas
Var g as new NSGraphicsMBS(Canvas1.NSViewMBS)

g.drawAtPoint m, new NSPointMBS(20,20)

point: The point in the current view to draw the text.

The width (height for vertical layout) of the rendering area is unlimited, unlike drawInRect, which uses a bounding rectangle. As a result, this method renders the text in a single line.

Don't invoke this method when no NSView is focused.

See also:

NSGraphicsMBS.drawAtPoint(text as string, point as NSPointMBS, DicAttributes as dictionary = nil)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 11.3 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the text with the font and other display characteristics of the given attributes, at the specified point in the currently focused view.

Point: The origin for the bounding box for drawing the string. If the focused view is flipped, the origin is the upper-left corner of the drawing bounding box; otherwise, the origin is the lower-left corner.
attributes: A dictionary of text attributes to be applied to the string. These are the same attributes that can be applied to an NSAttributedString object, but in the case of strings, the attributes apply to the entire string, rather than ranges within the string.

The width (height for vertical layout) of the rendering area is unlimited, unlike drawInRect, which uses a bounding rectangle. As a result, this method renders the text in a single line.

You should only invoke this method when an NSView object has focus.

See also:

NSGraphicsMBS.drawInRect(image as NSImageMBS, x as Double, y as Double, w as Double, h as Double, sx as Double, sy as Double, sw as Double, sh as Double, Operation as Integer, fraction as Double)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 7.7 ✅ Yes ❌ No ❌ No ✅ Yes All
draws the image into the given rectangle with the given source rectangle and the given mode.
Example
// make new image
Var myImage as new NSImageMBS(500,500)
Var myGraphics as new NSGraphicsMBS(myImage)

// make logo image
Var myPicture as Picture = LogoMBS(500)
Var anotherImage as new NSImageMBS(myPicture)

// draw logo image to new image
myGraphics.drawInRect(anotherImage, 0, 0, myImage.width, myImage.height, 0, 0, anotherImage.width, anotherImage.height, myGraphics.NSCompositeSourceOver, 1.0)
myGraphics = nil // flush

// save to file
Var f as FolderItem = SpecialFolder.Desktop.Child("test.jpg")
Var b as BinaryStream = BinaryStream.Create(f, True)
if b<>nil then
b.Write myImage.JPEGRepresentation
b.Close
end if

For Operation you use the Composite constants in this class.
In the Cocoa world the y axis is reversed. y=0 is on the bottom.

See also:

Some examples using this method:

NSGraphicsMBS.drawInRect(text as NSAttributedStringMBS, rect as NSRectMBS)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 12.4 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the attributed string within the given rectangle in the currently view, clipping the text layout to this rectangle.
Example
// create Hello World in red
Var a as NSAttributedStringMBS = NSAttributedStringMBS.attributedStringWithString("Hello World")
Var m as NSMutableAttributedStringMBS = a.mutableCopy

m.addAttribute(a.NSForegroundColorAttributeName, NSColorMBS.redColor, new NSRangeMBS(0, m.length))

// put it in a textarea
TextArea1.NSTextViewMBS.textStorage.setAttributedString m

// draw in Canvas
Var g as new NSGraphicsMBS(Canvas1.NSViewMBS)

g.drawInRect m, new NSRectMBS(20,20, 100, 100)

rect: The rectangle in which to draw.

Text is drawn within rect according to its line sweep direction; for example, Arabic text will begin at the right edge and potentially be clipped on the left.

The rect parameter determines how many glyphs are typeset within the width of a line, but it's possible for a portion of a glyph to appear outside the area of rect if the image bounding box of the particular glyph exceeds its typographic bounding box.

If the focus view is flipped, the text origin is set at the upper-left corner of the drawing bounding box; otherwise the origin is set at the lower-left corner. For text rendering, whether the view coordinates are flipped or not doesn't affect the flow of line layout, which goes from top to bottom. However, it affects the interpretation of the text origin. So, for example, if the rect argument is {0.0, 0.0, 100.0, 100.0}, the text origin is {0.0, 0.0} when the view coordinates are flipped and {0.0, 100.0} when not.

Don't invoke this method when no NSView is focused.

See also:

NSGraphicsMBS.drawInRect(text as string, rect as NSRectMBS, DicAttributes as dictionary = nil)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 11.3 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the text with the font and other display characteristics of the given attributes, within the specified rectangle in the currently focused NSView.

text: The text to draw.
Rect: The rectangle in which to draw the string.
attributes: A dictionary of text attributes to be applied to the string. These are the same attributes that can be applied to an NSAttributedString object, but in the case of strings, the attributes apply to the entire string, rather than ranges within the string.

The rendering area is bounded by rect, unlike drawAtPoint, which has an unlimited width. As a result, this method renders the text in multiple lines.

You should only invoke this method when an NSView has focus.

See also:

NSGraphicsMBS.drawPicture(image as Picture, x as Double, y as Double, w as Double, h as Double, sx as Double, sy as Double, sw as Double, sh as Double, Operation as Integer, fraction as Double)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 17.1 ✅ Yes ❌ No ❌ No ❌ No Desktop only
Draws a picture.

Same as drawInRect with NSImageMBS, but using picture.

NSGraphicsMBS.drawRect(x as Double, y as Double, w as Double, h as Double)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 7.7 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws a rectangle with the current color.

In the Cocoa world the y axis is reversed. y=0 is on the bottom.

NSGraphicsMBS.DrawWindowBackground(x as Double, y as Double, w as Double, h as Double)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 11.3 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the window's default background pattern into the specified rectangle of the currently focused view.

Pass the rectangle (in the current coordinate system) in which to draw the window's background pattern.

NSGraphicsMBS.drawWithRect(text as NSAttributedStringMBS, rect as NSRectMBS, options as Integer)

Type Topic Plugin Version macOS Windows Linux iOS Targets
method Cocoa Drawing MBS MacCocoa Plugin 12.4 ✅ Yes ❌ No ❌ No ✅ Yes All
Draws the receiver with the specified options, within the given rectangle in the current graphics context.
Example
// create Hello World in red
Var a as NSAttributedStringMBS = NSAttributedStringMBS.attributedStringWithString("Hello World")
Var m as NSMutableAttributedStringMBS = a.mutableCopy

m.addAttribute(a.NSForegroundColorAttributeName, NSColorMBS.redColor, new NSRangeMBS(0, m.length))

// put it in a textarea
TextArea1.NSTextViewMBS.textStorage.setAttributedString m

// draw in Canvas
Var g as new NSGraphicsMBS(Canvas1.NSViewMBS)

g.drawWithRect m, new NSRectMBS(20,20, 100, 100), g.NSStringDrawingUsesLineFragmentOrigin

rect: The rectangle specifies the rendering origin in the current graphics context.
options: The string drawing options. See NSStringDrawingOptions for the available options..

The rect argument's origin field specifies the rendering origin. The point is interpreted as the baseline origin by default. With NSStringDrawingUsesLineFragmentOrigin, it is interpreted as the upper left corner of the line fragment rect. The size field specifies the text container size. The width part of the size field specifies the maximum line fragment width if larger than 0.0. The height defines the maximum size that can be occupied with text if larger than 0.0 and NSStringDrawingUsesLineFragmentOrigin is specified. If NSStringDrawingUsesLineFragmentOrigin is not specified, height is ignored and considered to be single-line rendering (NSLineBreakByWordWrapping and NSLineBreakByCharWrapping are treated as NSLineBreakByClipping).

You should only invoke this method when there is a current graphics context.
Available in OS X v10.4 and later.

The items on this page are in the following plugins: MBS MacCocoa Plugin.


The biggest plugin in space...