Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

dear-image

Package Overview
Dependencies
Maintainers
1
Versions
11
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dear-image

A class that represents a graphical image.

  • 1.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
30
decreased by-58.9%
Maintainers
1
Weekly downloads
 
Created
Source

DearImage

A class that represents a graphical image.

setup

npm

npm i dear-image
npm i canvas # to support node

es6

import DearImage from 'dear-image';

node

let DearImage = require('dear-image');

browser

<script src="https://unpkg.com/dear-image"></script>

The module is globally available as DearImage.

members

static methods

.isDearImage(value)

Determines whether the passed value is an instance of DearImage.

argumentdescription
valueThe value to be checked.

Returns true if the passed value is an instance of DearImage, false otherwise.


.from(value)

Creates a DearImage instance from the given value.

argumentdescription
valueThe value to create from. Supported value types are ImageData, HTMLCanvasElement, OffscreenCanvas, HTMLImageElement and DearImage.

Returns the created DearImage instance.

let element = document.getElementById('my-image');
let image = DearImage.from(element);
document.body.appendChild(image.toHTMLCanvasElement());

.fromExcept(value)

Creates a DearImage instance from the given value if it's not one.

argumentdescription
valueThe value to create from.

Returns the same or created DearImage instance.

let element = document.getElementById('my-image');
let image = DearImage.fromExcept(element);
let otherImage = DearImage.fromExcept(image);
console.log(otherImage === image); // => true

.loadFrom(value)

Asynchronously loads a DearImage instance from the given value.

argumentdescription
valueThe value to load from. Supported value types are String, URL, Buffer, Blob, HTMLImageElement and everything the function .from supports.

Returns a promise that resolves to the created DearImage instance.

let url = '/path/to/image.jpg';
let image = await DearImage.loadFrom(url);
document.body.appendChild(image.toHTMLCanvasElement());

.loadFromExcept(value)

Asynchronously loads a DearImage instance from the given value if it's not one.

argumentdescription
valueThe value to load from.

Returns a promise that resolves to the same or created DearImage instance.

let url = '/path/to/image.jpg';
let image = await DearImage.loadFrom(url);
let otherImage = await DearImage.loadFromExcept(image);
console.log(otherImage === image); // => true

.blank(sizeX = 0, sizeY = 0)

Creates a DearImage instance without content.

argumentdescription
sizeXYThe size of the image.

Returns the created DearImage instance.


.measureText(text, font = {
  family: 'sans-serif',
  size: 10,
  style: 'normal',
  variant: 'normal',
  weight: 'normal',
})

Creates a TextMetrics instance representing the dimensions of the drawn text.

argumentdescription
textThe text.
font.familyThe font family.
font.sizeThe font size.
font.styleThe font style.
font.variantThe font variant.
font.weightThe font weight.

Returns the created TextMetrics instance.


.text(text, options = {
  fill: '#000',
  font: {
    family: 'sans-serif',
    size: 10,
    style: 'normal',
    variant: 'normal',
    weight: 'normal',
  },
  padding: 0.28,
})

Creates a DearImage instance with the drawn text.

argumentdescription
textThe text.
options.fillThe fill color.
options.font.familyThe font family.
options.font.sizeThe font size.
options.font.styleThe font style.
options.font.variantThe font variant.
options.font.weightThe font weight.
options.paddingThe space around the text. The value is relative to the font size.

Returns the created DearImage instance.

properties

.sizeX

The size of the image along the x-axis.

let image = DearImage.blank(300, 150);
console.log(image.sizeX); // => 300

.sizeY

The size of the image along the y-axis.

let image = DearImage.blank(300, 150);
console.log(image.sizeY); // => 150

.size

The size of the image.

let image = DearImage.blank(300, 150);
console.log(image.size); // => {x: 300, y: 150}

.minSize

The minimum size of the image.


.maxSize

The maximum size of the image.

methods

.resize(sizeX = this.sizeX, sizeY = this.sizeY)

Changes the size of the image.

argumentdescription
sizeXYThe new size of the image.

Returns the created DearImage instance.

let image = DearImage.from(source).resize(300, 150);

.resizeX(size = this.sizeY, proportionally = false)

Changes the size of the image along the x-axis.

argumentdescription
sizeThe new size of the image along the x-axis.
proportionallyIf true, the aspect ratio of the image is preserved.

Returns the created DearImage instance.


.resizeY(size = this.sizeX, proportionally = false)

Changes the size of the image along the y-axis.

argumentdescription
sizeThe new size of the image along the y-axis.
proportionallyIf true, the aspect ratio of the image is preserved.

Returns the created DearImage instance.


.crop(originX = 0, originY = 0, sizeX = this.sizeX, sizeY = this.sizeY)

Selects an area from the image.

argumentdescription
originXYThe origin of the area. A negative number indicates the origin from the end of the image.
sizeXYThe size of the area. A negative number reverses the direction.

Returns the created DearImage instance.

let image = DearImage.from(source).crop(100, -200, -50, 150);

.reframe(sizeX = this.sizeX, sizeY = this.sizeY, alignmentX = 'center', alignmentY = 'center')

Aligns the image inside an area.

argumentdescription
sizeXYThe size of the area.
alignmentXYThe alignment of the image. Possible values are 'start', 'center' and 'end'.

Returns the created DearImage instance.

let image = DearImage.from(source).reframe(300, 150, 'start', 'end');

.rescale(scalingX = 1, scalingY = 1)

Changes the size of the image factorially.

argumentdescription
scalingXYThe scaling factor.

Returns the created DearImage instance.

let image = DearImage.from(source).rescale(3/2, 2/3);

.scale(scaling = 1)

Changes the size of the image factorially. The aspect ratio of the image is preserved.

argumentdescription
scalingThe scaling factor.

Returns the created DearImage instance.

let image = DearImage.from(source).scale(3/2);

.scaleIn(sizeX, sizeY)

Scales the image inside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.scaleOut(sizeX, sizeY)

Scales the image outside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.scaleDownIn(sizeX, sizeY)

If necessary, scales the image down inside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.scaleDownOut(sizeX, sizeY)

If necessary, scales the image down outside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.scaleUpIn(sizeX, sizeY)

If necessary, scales the image up inside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.scaleUpOut(sizeX, sizeY)

If necessary, scales the image up outside an area. The aspect ratio of the image is preserved.

argumentdescription
sizeXYThe size of the area.

Returns the created DearImage instance.


.flipX()

Flips the image along the x-axis.

Returns the created DearImage instance.


.flipY()

Flips the image along the y-axis.

Returns the created DearImage instance.


.toDataURL(format, quality)

Creates a data URL string representing the content.

Returns the created data URL string.


.toImageData()

Creates an ImageData object representing the content.

Returns the created ImageData object.


.toBlob(format, quality)

browser only

Creates a Blob instance representing the content.

Returns the created Blob instance.


.toBuffer(format, quality)

node only

Creates a Buffer instance representing the content.

Returns the created Buffer instance.


.toHTMLCanvasElement()

browser only

Creates a HTMLCanvasElement instance representing the content.

Returns the created HTMLCanvasElement instance.


.toOffscreenCanvas()

browser only

Creates an OffscreenCanvas instance representing the content.

Returns the created OffscreenCanvas instance.


.toHTMLImageElement(format, quality)

browser only

Creates a HTMLImageElement instance representing the content.

Returns the created HTMLImageElement instance.

let image = DearImage.from(source);
let element = image.toHTMLImageElement('image/jpeg', 0.75);
element.style.border = '1px solid BlueViolet';
document.body.appendChild(element);

.saveToFileSystem(file, format, quality)

node only

Asynchronously saves the content to the file system.

argumentdescription
fileThe file to save to.

Returns a promise.

let image = DearImage.from(source);
await image.saveToFileSystem('/path/to/image.jpg', 'image/jpeg', 0.75);

Keywords

FAQs

Package last updated on 28 Aug 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc