Jinie
Simple Image Editing & Compression Tool
npm i jinie
  • Simple implementation
  • Responsive with light/dark theme
  • In-built image compression
Docs  âžž
Try
Initialize
import Jinie from 'jinie' import 'jinie/dist/styles.css' function App() { return (<div> {/* Initialize Jinie */} <Jinie /> .. <BrowserRouter> <Routes> <Route .. /> .. </Routes> </BrowserRouter> </div>) } createRoot(document.getElementById('root') as HTMLElement).render(<App />)
Examples
Simple image editor
<button onClick={() => Jinie.init({ accept: 'image/jpeg', onResult: ({ code, img }) => { console.log(code, img) if (img) setImgURL(window.URL.createObjectURL(img)) } }) } > Upload Image </button>
Upload with compression
<button onClick={() => Jinie.init({ accept: 'image/jpeg', onResult: ({ img }) => { if (img) setImgURL(window.URL.createObjectURL(img)) }, maxSize: 2 * 1024 }) } > Upload Image </button>
Upload square png image with transparent background
<button onClick={() => Jinie.init({ accept: 'image/jpeg', onResult: ({ img }) => { if (img) setImgURL(window.URL.createObjectURL(img)) }, aspectRatio: 1, icon: true }) } > Upload Image </button>
Upload png image with red background
<button onClick={() => Jinie.init({ accept: 'image/jpeg', onResult: ({ img }) => { if (img) setImgURL(window.URL.createObjectURL(img)) }, aspectRatio: 1, icon: true, fill: '#ff0000' }) } > Upload Image </button>
Min width & height to be 512px
<button onClick={() => Jinie.init({ accept: 'image/jpeg', onResult: ({ img }) => { if (img) setImgURL(window.URL.createObjectURL(img)) }, minWidth: 512, minHeight: 512 }) } > Upload Image </button>
Light/Dark Theme
Light
Dark

// Light theme <Jinie theme='light' /> // Dark theme <Jinie theme='dark' />