Image Editor
About this app
A fun and colorful image editor app
Image Editor
Related apps
Put this on your site
Source
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Image Editor</title>
<meta name="description" content="A fun and colorful image editor app">
<meta name="keywords" content="image editor, photo editor, effects, magic pen, colorful, negative">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
// Get the main container
const mainContainer = document.getElementById('main-container');
// Create the image editor container
const editorContainer = document.createElement('div');
editorContainer.classList.add('editor-container');
mainContainer.appendChild(editorContainer);
// Create the image upload input
const imageInput = document.createElement('input');
imageInput.setAttribute('type', 'file');
imageInput.classList.add('form-control', 'mb-3');
imageInput.addEventListener('change', function() {
const file = this.files[0];
const reader = new FileReader();
reader.onload = function(e) {
const image = document.createElement('img');
image.setAttribute('src', e.target.result);
image.setAttribute('alt', 'Uploaded Image');
editorContainer.innerHTML = '';
editorContainer.appendChild(image);
};
reader.readAsDataURL(file);
});
editorContainer.appendChild(imageInput);
// Create the magic pen button
const magicPenButton = document.createElement('button');
magicPenButton.classList.add('btn', 'btn-primary', 'me-2');
magicPenButton.innerHTML = '<i class="fa fa-magic"></i> Magic Pen';
magicPenButton.addEventListener('click', function() {
const image = editorContainer.querySelector('img');
if (image) {
image.classList.toggle('magic-pen');
}
});
editorContainer.appendChild(magicPenButton);
// Create the colorized button
const colorizedButton = document.createElement('button');
colorizedButton.classList.add('btn', 'btn-primary');
colorizedButton.innerHTML = '<i class="fa fa-paint-brush"></i> Colorized';
colorizedButton.addEventListener('click', function() {
const image = editorContainer.querySelector('img');
if (image) {
image.classList.toggle('colorized');
}
});
editorContainer.appendChild(colorizedButton);
// Create the negative button
const negativeButton = document.createElement('button');
negativeButton.classList.add('btn', 'btn-primary', 'ms-2');
negativeButton.innerHTML = '<i class="fa fa-adjust"></i> Negative';
negativeButton.addEventListener('click', function() {
const image = editorContainer.querySelector('img');
if (image) {
image.classList.toggle('negative');
}
});
editorContainer.appendChild(negativeButton);
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
body {
background-color: #f8f9fa;
font-family: 'Roboto', sans-serif;
}
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
.editor-container {
text-align: center;
}
.editor-container img {
max-width: 100%;
max-height: 400px;
margin-bottom: 20px;
transition: filter 0.3s ease-in-out;
}
.editor-container img.magic-pen {
filter: invert(1);
}
.editor-container img.colorized {
filter: saturate(2);
}
.editor-container img.negative {
filter: invert(100%);
}
.btn {
font-size: 18px;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<!-- App HTML Goes Here -->
</div>
</body>
</html>
NEW APPS
These are apps made by the community!