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

@tato30/vue-polygon-cropper

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tato30/vue-polygon-cropper

A polygon cropper built in top of fabric.js

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

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

vue-polygon-cropper

[!WARNING] This component is still in active development and only early versions has been released. Any recommendation, feature propose or bug report feel free to open an Issue or PR 😊

Introduction

VuePolygonCropper is a Vue 3 component built-in in top of fabric.js to crop an image with polygon shapes.

Installation

npm i @tato30/vue-polygon-cropper
yarn add @tato30/vue-polygon-cropper

Basic Usage

<script setup lang="ts">
import { ref } from 'vue';
import { VuePolygonCropper } from '@tato30/vue-polygon-cropper'
</script>

<template>
  <vue-polygon-cropper src="https://domain/images/image1.jpg" :width="500" />
</template>

Props

src

Type: string
Required: true

The URL to create an image from.

<vue-polygon-cropper src="https://domain/images/image1.jpg" />

width

Type: number
Required: false

The width to scale the image on the canvas element, otherwise the canvas will render with the image dimensions.

height

Type: number
Required: false

The height to scale the image on the canvas element, otherwise the canvas will render with the image dimensions.

This prop has less precedence than width.

no-background

Type: boolean
Default: false
Required: false

Remove the background shape.

background-color

Type: string
Default: rgba(0, 0, 0, 0.7)
Required: false

Set the background color.

points

Type: array
Required: false

An array of cartesian points to shape an initial polygon on the image, the points must be calculated in base of the image's dimensions and can be set 1 or n points.

By default, the component creates four points for each corner of the image.

<vue-polygon-cropper
  src="https://domain/images/image1.jpg" 
  :points="[
    { x: 149, y: 1626 },
    { x: 1321, y: 1248 },
    { x: 1437, y: 41 },
    { x: 132, y: 212 },
    { x: 723, y: 920 },
    { x: 1202, y: 928 }
  ]"
/>

lines

Type: object | Line
Required: false

Specify the style of the lines drawn between points.

Default (All properties are optional):

{
  "color": "white", // Line color
  "width": 1.5, // Line width in px
  "dash": [7, 5] // Dash array [dash, space], use [0, 0] for a thin line, in px
}
<vue-polygon-cropper
  src="https://domain/images/image1.jpg" 
  :lines="{
    width: 1,
    dash: [0, 0] 
  }"
/>

handlers

Type: object | Handler
Required: false

Specify the style of the handlers drawn by each point.

Default (All properties are optional):

{
  "type": "rect", // Shape: "circle" or "rect"
  "color": "white", // Shape's fill color
  "borderColor": "#78a6f1", // Shape's border color
  "borderWidth": 0.5, // Shape's border width in px
  "padding": 10, // Padding of the movable area of the handler in px
  "width": 10, // Width of the 'rect' handler in px
  "height": 10, // Height of the 'rect' handler in px
  "radius": 5, // Radius of the 'circle' handler in px
}
<vue-polygon-cropper
  src="https://domain/images/image1.jpg" 
  :handlers="{
    borderWidth: 1,
    padding: 15,
    width: 7,
    height: 7,
  }"
/>

Events

loaded

Emitted once the image has been loaded.

<vue-polygon-cropper src="https://domain/images/image1.jpg" @loaded="onLoaded" />

moving

Emitted when a point has been moved.

<vue-polygon-cropper src="https://domain/images/image1.jpg" @loaded="onMoving" />

The payload value contains the coordinates of all points in the canvas and scaled to image's dimensions

Example:

{
  // Coordinates based on canvas
  "canvas": [ 
    {
      x: 120,
      y: 52
    },
    {
      x: 620,
      y: 80
    },
    {
      x: 690,
      y: 240
    },
    {
      x: 90,
      y: 300
    }
  ],
  // Coordinates scaled in base image's dimensions (scale: 2, in this example)
  "image": { 
    {
      x: 240,
      y: 104
    },
    {
      x: 1240,
      y: 160
    },
    {
      x: 1380,
      y: 480
    },
    {
      x: 180,
      y: 600
    }
  }
}

Keywords

FAQs

Package last updated on 07 May 2024

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