Calculator Tools Calculator Tools
Create

I The Image

Jan 3, 2024

About this app

I The Image - A Fun and Interactive Image Editor App

I The Image I The Image Upload Image None Grayscale Sepia Invert Blur

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>I The Image</title>
<meta name="description" content="I The Image - A Fun and Interactive Image Editor App">
<meta name="keywords" content="image, editor, app, fun, interactive">

<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=Poppins:400,500,700&display=swap" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
let imageSrc = '';

// Function to handle image selection
function handleImageUpload(event) {
const file = event.target.files[0];
const reader = new FileReader();

reader.onload = function (event) {
imageSrc = event.target.result;
$('#image-preview').attr('src', imageSrc);
};

reader.readAsDataURL(file);
}

// Function to handle image filters
function applyFilter(filter) {
$('#image-preview').css('filter', filter);
}

// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function () {
// Event listener for image upload
$('#image-upload').change(handleImageUpload);

// Event listener for filter buttons
$('#filter-none').click(function () {
applyFilter('none');
});

$('#filter-grayscale').click(function () {
applyFilter('grayscale(100%)');
});

$('#filter-sepia').click(function () {
applyFilter('sepia(100%)');
});

$('#filter-invert').click(function () {
applyFilter('invert(100%)');
});

$('#filter-blur').click(function () {
applyFilter('blur(5px)');
});
});

} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
/* App CSS Goes Here */
body {
background-color: #f2f2f2;
font-family: 'Poppins', sans-serif;
}

h1 {
text-align: center;
margin-top: 50px;
margin-bottom: 30px;
font-size: 32px;
font-weight: 700;
color: #333;
}

.upload-container {
text-align: center;
margin-bottom: 50px;
}

.upload-container input[type="file"] {
display: none;
}

.upload-container label {
display: inline-block;
padding: 10px 20px;
background-color: #007bff;
color: #fff;
border-radius: 5px;
cursor: pointer;
transition: all 0.3s ease;
}

.upload-container label:hover {
background-color: #0056b3;
}

.image-preview-container {
text-align: center;
}

.image-preview {
max-width: 500px;
margin: 0 auto;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
transition: all 0.3s ease;
}

.filter-container {
text-align: center;
margin-top: 30px;
}

.filter-buttons button {
padding: 5px 15px;
margin: 0 5px;
border: none;
border-radius: 5px;
color: #fff;
cursor: pointer;
transition: all 0.3s ease;
}

.filter-buttons button:hover {
opacity: 0.8;
}

.filter-buttons button.active {
background-color: #007bff;
}
</style>
</head>

<body>
<div id="main-container" class="container">
<h1>I The Image</h1>

<div class="upload-container">
<input type="file" id="image-upload">
<label for="image-upload">Upload Image</label>
</div>

<div class="image-preview-container">
<img id="image-preview" class="image-preview" src="" alt="Image Preview">
</div>

<div class="filter-container">
<div class="filter-buttons">
<button id="filter-none" class="active">None</button>
<button id="filter-grayscale">Grayscale</button>
<button id="filter-sepia">Sepia</button>
<button id="filter-invert">Invert</button>
<button id="filter-blur">Blur</button>
</div>
</div>
</div>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-pzjwJp8F9eTT+5e4sMlz1HgB9D4wqg0b8b2ycn1Stm5VHjV6ak9V0D0G5hq+8zeg" crossorigin="anonymous"></script>
</body>

</html>