Image Editor
About this app
Edit images with a variety of effects.
Image Editor Image Editor Grayscale Sepia Blur Brightness Contrast Upload Image
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="Edit images with a variety of effects.">
<meta name="keywords" content="image editor, effects, filters">
<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">
<link href="https://fonts.googleapis.com/css?family=Roboto" 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() {
// Function to apply the selected effect to the image
function applyEffect(effect) {
var image = document.getElementById("image-preview");
image.className = ""; // Remove any previous effects
image.classList.add(effect); // Add the selected effect class
}
// Event listener for effect selection
var effectButtons = document.getElementsByClassName("effect-button");
for (var i = 0; i < effectButtons.length; i++) {
effectButtons[i].addEventListener("click", function() {
var effect = this.getAttribute("data-effect");
applyEffect(effect);
});
}
// Function to handle file selection
function handleFileSelect(event) {
var file = event.target.files[0];
var reader = new FileReader();
reader.onload = function(e) {
var image = document.getElementById("image-preview");
image.src = e.target.result;
};
reader.readAsDataURL(file);
}
// Event listener for file input
var fileInput = document.getElementById("file-input");
fileInput.addEventListener("change", handleFileSelect);
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
body {
background-color: #f1f1f1;
font-family: 'Roboto', sans-serif;
}
.container {
text-align: center;
margin-top: 2rem;
}
h1 {
color: #333;
}
.image-container {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 2rem;
}
.image-preview {
max-width: 400px;
max-height: 400px;
border: 1px solid #ddd;
box-shadow: 0px 0px 6px 0px rgba(0, 0, 0, 0.2);
}
.effect-buttons {
display: flex;
justify-content: center;
gap: 1rem;
margin-bottom: 2rem;
}
.effect-button {
background-color: #333;
color: #fff;
border: 0;
padding: 0.5rem 1rem;
cursor: pointer;
}
.effect-button:hover {
background-color: #555;
}
.file-input {
display: none;
}
.file-input-label {
background-color: #333;
color: #fff;
padding: 0.5rem 1rem;
cursor: pointer;
}
.file-input-label:hover {
background-color: #555;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Image Editor</h1>
<div class="image-container">
<img id="image-preview" class="image-preview" src="">
</div>
<div class="effect-buttons">
<button class="effect-button" data-effect="grayscale">Grayscale</button>
<button class="effect-button" data-effect="sepia">Sepia</button>
<button class="effect-button" data-effect="blur">Blur</button>
<button class="effect-button" data-effect="brightness">Brightness</button>
<button class="effect-button" data-effect="contrast">Contrast</button>
</div>
<input type="file" id="file-input" class="file-input">
<label for="file-input" class="file-input-label">Upload Image</label>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!