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

picha

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

picha - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

test/copy.js

8

lib/image.js

@@ -74,1 +74,9 @@

}
Image.prototype.copy = function(targetImage) {
if (targetImage.pixel != this.pixel)
throw new Error("can't copy pixels between different pixel types");
var rw = this.pixelSize() * Math.min(this.width, targetImage.width);
var h = Math.min(this.height, targetImage.height);
for (var y = 0; y < h; ++y) this.data.copy(targetImage.data, y * targetImage.stride, y * this.stride, y * this.stride + rw);
}

2

package.json
{
"name": "picha",
"version": "0.2.0",
"version": "0.3.0",
"description": "image format codec and simple image processing",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -9,4 +9,111 @@ picha

## Usage
```
var fs = require('fs');
var picha = require('picha');
var image = picha.decodeSync(fs.readFileSync("test.jpeg"));
var resized = picha.resizeSync(image, { width: 100, height: 100 });
var cropped = resized.subView(20, 20, 60, 60);
var compressed = picha.encodePngSync(cropped);
fs.writeFileSync('tested.png', compressed);
```
## API
### Image
### `new picha.Image(opt)`
Construct a new image object from the options opt
* opt.width: width of the image in pixels
* opt.height: height of the image in pixels
* opt.pixel: pixel format (rgb, rgba, grey, greya)
* opt.stride: row stride in bytes - defaults to 4 byte aligned rows
* opt.data: buffer of data
If the data buffer isn't provided an appropriate buffer will be allocated.
### `Image.subView(x, y, w, h)`
Return a new image that is a rectangulare view into this image defined by the supplied pixel coordinates.
### `Image.copy(targetImage)`
Copy the pixels from this image to the target Image. The pixel format must match.
If the sizes don't match then overlapping or missing pixels are discarded.
### `Image.pixelSize()`
The size, in bytes, of this images pixel format.
### `Image.row(y)`
Return a slice of buffer for a row of the image.
### `Image.equalPixels(o)`
Return true if this image and another image 'o' are pixel for pixel equal.
### `Image.avgChannelDiff(o)`
Return the average channel by channel difference between this and another image 'o'.
### Image codec
### `picha.stat(buf)`
Decode the image header and grab the image vitals. Only yhe first handful of bytes of the
image data is required. The function returns null or
```
{
width: the width of the image
height: the height of the image
pixel: pixel format
mimetype: one of "image/jpeg" or "image/png"
}
```
### `picha.decode(buf, cb)`
Decodes the supplied image data on a libuv thread and calls cb with (err, image).
### `picha.decodeSync(buf)`
Decodes the supplied image data on the v8 thread and returns the image.
### `picha.encodePng(image, cb)`
Encode the supplied image into png format on a libuv thread. The cb receives (err, buffer).
### `picha.encodeJpeg(image, opt, cb)`
Encode the supplied image into jpeg format on a libuv thread. The cb receives (err, buffer).
The optional opt object may specify { quality: 85 }.
### `picha.statPng(buf)`
### `picha.statJpeg(buf)`
Decode the header of the respective image formats and returns null or an object containing the
width, height and pixel format.
### `picha.decodePng(buf, cb)`
### `picha.decodeJpeg(buf, cb)`
Decode the respective image format data on a libuv thread and call cb with (err, image).
### `picha.decodePngSync(buf)`
### `picha.decodeJpegSync(buf)`
Decode the respective image format data on the v8 thread and return the image.
### Image manipulation
### `picha.resize(image, opt, cb)`
Resize the image with the provided options. The computation is performed on a libuv thread and cb receives (err, image).
* opt.width: the width to resize
* opt.height: the height to resize
* opt.filter: optional resize filter - cubic (default), lanczos, catmulrom, mitchel, box, or triangle.
* opt.filterScale: optional scale to apply to the filter (0.70)
### `picha.resizeSync(image, opt)`
Resize an image on the v8 thread. The resize image is returned.
### `picha.colorConvert(image, opt, cb)`
Convert the color format of the image. The computation is on the a libuv thread and cb receives (err, image).
* opt.pixel: the pixel format to convert to (rgb, rgba, grey, greya)
* opt.redWeight: optional weight of the red channel for rgb->grey conversion (0.299)
* opt.greenWeight: optional weight of the green channel for rgb->grey conversion (0.587)
* opt.blueWeight: optional weight of the blue channel for rgb->grey conversion (0.114)
### `picha.colorConvertSync(image, opt)`
Convert the color format of the image. The computation is on the v8 thread and the resulting image is returned.
## License
MIT

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

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