Security News
cURL Project and Go Security Teams Reject CVSS as Broken
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
image-process
Advanced tools
A Image clipping or scaling, support local or same domain video file screenshot. It's implemented in canvas.
A Image clipping or scaling, support local or same domain video file screenshot. It's implemented in canvas.
currentTime
of the VideoHandlerOptions.https://capricorncd.github.io/image-process-tools/demo
import { handleMediaFile } from 'image-process'
const options = {
mimeType: 'image/jpeg',
width: 600,
height: 400,
quality: 0.8
}
// Crop image or video screenshot
handleMediaFile(file, options)
.then(res => {
console.log(res)
})
.catch (err => {
console.error(err)
})
Use in html
<script src="./dist/image-process.umd.js"></script>
<script>
imageProcess.handleMediaFile(file, options)
.then(res => console.log(res))
.catch (err => console.error(err))
</script>
# npm
npm install image-process
# npm i image-process
# yarn
yarn add image-process
# pnpm
pnpm install image-process
# pnpm i image-process
Image file compression or cropping function.
Param | Types | Required | Description |
---|---|---|---|
file | File /Blob /string | yes | It's string can only be base64 data. |
options | ImageHandlerOptions | no | See ImageHandlerOptions. |
Promise<ImageHandlerResult>
See ImageHandlerResult.Image processing or video screenshot processing function.
Param | Types | Required | Description |
---|---|---|---|
file | File | yes | Image or video file. |
options | MediaFileHandlerOptions | no | See MediaFileHandlerOptions. |
Promise<MediaFileHandlerResult>
See MediaFileHandlerResult.Video file screenshot processing function.
Param | Types | Required | Description |
---|---|---|---|
file | File | yes | Video file object. |
options | VideoHandlerOptions | no | See VideoHandlerOptions. |
Promise<VideoHandlerResult>
See VideoHandlerResult.An options of the handleImageFile function.
Prop | Types | Required | Description |
---|---|---|---|
enableDevicePixelRatio | boolean | no | Whether to enable the device pixel ratio, when 2 times, the size of the returned image is x2. Default is false . |
mimeType | string | no | Multipurpose Internet Mail Extensions. Default is image/jpeg . https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types |
isForce | boolean | no | When the image width or height is less than the set value, force the target image width or height to be adjusted to the set value. Default is false . |
perResize | number | no | Reduce the width each time. To prevent jagged edges when scaling an image. Default is 500 . |
quality | number | no | A Number between 0 and 1 indicating the image quality to use for image formats that use lossy compression such as image/jpeg and image/webp. If this argument is anything else, the default value for image quality is used. The default value is 0.92. Other arguments are ignored. See toDataURL. Default is 0.9 . |
width | number | no | The width of the processed image. Default is 0 . |
height | number | no | The height of the processed image. Default is 0 . |
longEdge | number | no | The value of long edge. Valid when width and height are 0 . Default is 0 . |
cropInfo | OptionsCropInfo | no | See OptionsCropInfo. |
interface ImageHandlerOptions {
// Whether to enable the device pixel ratio, when 2 times, the size of the returned image is x2. Default is `false`.
enableDevicePixelRatio?: boolean
// Multipurpose Internet Mail Extensions. Default is `image/jpeg`.
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types
mimeType?: string
// When the image width or height is less than the set value,
// force the target image width or height to be adjusted to the set value.
// Default is `false`.
isForce?: boolean
// Reduce the width each time. To prevent jagged edges when scaling an image.
// Default is `500`.
perResize?: number
// A Number between 0 and 1 indicating the image quality to use for image formats that use lossy compression such as image/jpeg and image/webp.
// If this argument is anything else, the default value for image quality is used. The default value is 0.92. Other arguments are ignored.
// See [toDataURL](https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toDataURL).
// Default is `0.9`.
quality?: number
// The `width` of the processed image. Default is `0`.
width?: number
// The `height` of the processed image. Default is `0`.
height?: number
// The value of long edge. Valid when width and height are `0`. Default is `0`.
longEdge?: number
// See [OptionsCropInfo](#OptionsCropInfo).
cropInfo?: OptionsCropInfo
}
Data returned of the handleImageFile function.
Prop | Types | Required | Description |
---|---|---|---|
blob | Blob | yes | Image blob data. |
data | string | yes | Image base64 data. |
width | number | yes | The width of the image. |
height | number | yes | The height of the image. |
type | string | yes | The type of the image. |
size | SizeInfo | yes | The size information of the image. See SizeInfo. |
url | string | yes | A blob url of the image. |
element | HTMLImageElement /HTMLCanvasElement | yes | HTMLImageElement or HTMLCanvasElement . |
raw | MediaFileHandlerRawData | yes | Raw information of the image file being processed. See MediaFileHandlerRawData. |
interface ImageHandlerResult extends MediaHandlerResultBase {
// `HTMLImageElement` or `HTMLCanvasElement`.
element: HTMLImageElement | HTMLCanvasElement
// Raw information of the image file being processed. See [MediaFileHandlerRawData](#MediaFileHandlerRawData).
raw: MediaFileHandlerRawData
}
An options of the handleMediaFile function. See VideoHandlerOptions.
type MediaFileHandlerOptions = VideoHandlerOptions
Raw information of the image file being processed.
Prop | Types | Required | Description |
---|---|---|---|
blob | Blob | yes | Image blob data. |
data | string | yes | Image base64 data. |
width | number | yes | The width of the image. |
height | number | yes | The height of the image. |
type | string | yes | The type of the image. |
size | SizeInfo | yes | The size information of the image. See SizeInfo. |
url | string | yes | A blob url of the image. |
element | HTMLImageElement | yes | HTMLImageElement |
interface MediaFileHandlerRawData extends MediaHandlerResultBase {
// `HTMLImageElement`
element: HTMLImageElement
}
Data returned of the handleMediaFile function.
Prop | Types | Required | Description |
---|---|---|---|
blob | Blob | yes | Image blob data. |
data | string | yes | Image base64 data. |
width | number | yes | The width of the image. |
height | number | yes | The height of the image. |
type | string | yes | The type of the image. |
size | SizeInfo | yes | The size information of the image. See SizeInfo. |
url | string | yes | A blob url of the image. |
element | HTMLImageElement /HTMLCanvasElement | yes | HTMLImageElement or HTMLCanvasElement . |
raw | MediaFileHandlerRawData | yes | Raw information of the image file being processed. See MediaFileHandlerRawData. |
videoInfo | VideoInfo | no | Video file information. See VideoInfo. |
interface MediaFileHandlerResult extends ImageHandlerResult {
// Video file information. See [VideoInfo](#videoinfo).
videoInfo?: VideoInfo
}
Prop | Types | Required | Description |
---|---|---|---|
blob | Blob | yes | Image blob data. |
data | string | yes | Image base64 data. |
width | number | yes | The width of the image. |
height | number | yes | The height of the image. |
type | string | yes | The type of the image. |
size | SizeInfo | yes | The size information of the image. See SizeInfo. |
url | string | yes | A blob url of the image. |
interface MediaHandlerResultBase {
// Image blob data.
blob: Blob
// Image base64 data.
data: string
// The width of the image.
width: number
// The height of the image.
height: number
// The type of the image.
type: string
// The size information of the image. See [SizeInfo](#SizeInfo).
size: SizeInfo
// A blob url of the image.
url: string
}
https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage
It will be ignored when the value is invalid.
Prop | Types | Required | Description |
---|---|---|---|
sx | number | yes | The x-axis coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument. |
sy | number | yes | The y-axis coordinate of the top left corner of the sub-rectangle of the source image to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument. |
sw | number | yes | The width of the sub-rectangle of the source image to draw into the destination context. If not specified, the entire rectangle from the coordinates specified by sx and sy to the bottom-right corner of the image is used. Use the 3- or 5-argument syntax to omit this argument. |
sh | number | yes | The height of the sub-rectangle of the source image to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument. |
interface OptionsCropInfo {
// The x-axis coordinate of the top left corner of the sub-rectangle of the source `image` to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument.
sx: number
// The y-axis coordinate of the top left corner of the sub-rectangle of the source `image` to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument.
sy: number
// The width of the sub-rectangle of the source `image` to draw into the destination context. If not specified, the entire rectangle from the coordinates specified by `sx` and `sy` to the bottom-right corner of the image is used. Use the 3- or 5-argument syntax to omit this argument.
sw: number
// The height of the sub-rectangle of the source `image` to draw into the destination context. Use the 3- or 5-argument syntax to omit this argument.
sh: number
}
File size information.
Prop | Types | Required | Description |
---|---|---|---|
text | string | yes | File size as a string, 1.23MiB etc. |
unit | string | yes | Unit of file size, MiB etc. |
value | number | yes | The size of the file as a suitable number, without units, 1.23 etc. |
bytes | number | yes | What is the size of the image in bytes. |
interface SizeInfo {
// File size as a string, `1.23MiB` etc.
text: string
// Unit of file size, `MiB` etc.
unit: string
// The size of the file as a suitable number, without units, `1.23` etc.
value: number
// What is the size of the image in bytes.
bytes: number
}
An options of the handleVideoFile function.
Prop | Types | Required | Description |
---|---|---|---|
enableDevicePixelRatio | boolean | no | Whether to enable the device pixel ratio, when 2 times, the size of the returned image is x2. Default is false . |
mimeType | string | no | Multipurpose Internet Mail Extensions. Default is image/jpeg . https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types |
isForce | boolean | no | When the image width or height is less than the set value, force the target image width or height to be adjusted to the set value. Default is false . |
perResize | number | no | Reduce the width each time. To prevent jagged edges when scaling an image. Default is 500 . |
quality | number | no | A Number between 0 and 1 indicating the image quality to use for image formats that use lossy compression such as image/jpeg and image/webp. If this argument is anything else, the default value for image quality is used. The default value is 0.92. Other arguments are ignored. See toDataURL. Default is 0.9 . |
width | number | no | The width of the processed image. Default is 0 . |
height | number | no | The height of the processed image. Default is 0 . |
longEdge | number | no | The value of long edge. Valid when width and height are 0 . Default is 0 . |
cropInfo | OptionsCropInfo | no | See OptionsCropInfo. |
currentTime | number | no | The HTMLMediaElement interface's currentTime property specifies the current playback time in seconds. If it is longer than the video duration, the last frame will be captured. The default is a random timestamp in the video duration. |
interface VideoHandlerOptions extends ImageHandlerOptions {
// The `HTMLMediaElement` interface's `currentTime` property specifies the current playback time in seconds.
// If it is longer than the video duration, the last frame will be captured.
// The default is a `random` timestamp in the video duration.
currentTime?: number
}
Data returned of the handleVideoFile function.
Prop | Types | Required | Description |
---|---|---|---|
blob | Blob | yes | Image blob data. |
data | string | yes | Image base64 data. |
width | number | yes | The width of the image. |
height | number | yes | The height of the image. |
type | string | yes | The type of the image. |
size | SizeInfo | yes | The size information of the image. See SizeInfo. |
url | string | yes | A blob url of the image. |
element | HTMLImageElement /HTMLCanvasElement | yes | HTMLImageElement or HTMLCanvasElement . |
raw | MediaFileHandlerRawData | yes | Raw information of the image file being processed. See MediaFileHandlerRawData. |
videoInfo | VideoInfo | yes | When taking a screenshot of the video, the original video file information. See VideoInfo. |
interface VideoHandlerResult extends ImageHandlerResult {
// When taking a screenshot of the video, the original video file information.
// See [VideoInfo](#VideoInfo).
videoInfo: VideoInfo
}
The original video file information.
Prop | Types | Required | Description |
---|---|---|---|
url | string | yes | A blob url of the video file. |
videoFile | File | yes | The video file object. |
videoWidth | number | yes | The width of the video. |
videoHeight | number | yes | The height of the video. |
duration | number | yes | The duration of the video. |
currentTime | number | yes | The time point of the video screenshot. |
interface VideoInfo {
// A blob url of the video file.
url: string
// The video file object.
videoFile: File
// The width of the video.
videoWidth: number
// The height of the video.
videoHeight: number
// The duration of the video.
duration: number
// The time point of the video screenshot.
currentTime: number
}
These methods's documentation see https://github.com/capricorncd/zx-sml
import {
fileToBase64,
createElement,
formatBytes,
splitBase64,
createBlobURL,
base64ToBlob,
} from 'image-process'
Code and documentation copyright 2018-Present. Capricorncd. Code released under the MIT License.
FAQs
A Image clipping or scaling, support local or same domain video file screenshot. It's implemented in canvas.
We found that image-process demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.
Security News
Biden's executive order pushes for AI-driven cybersecurity, software supply chain transparency, and stronger protections for federal and open source systems.