Editor de Imagens com Efeitos
About this app
Um editor de imagens com mais de 100 efeitos para escolher. Adicione imagens, escreva textos e salve o resultado final.
Editor de Imagens com Efeitos Editor de Imagens com Efeitos Adicionar Imagem Efeitos Texto Salvar
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>Editor de Imagens com Efeitos</title>
<meta name="description" content="Um editor de imagens com mais de 100 efeitos para escolher. Adicione imagens, escreva textos e salve o resultado final.">
<meta name="keywords" content="editor de imagens, efeitos, imagem, texto, salvar">
<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() {
// Add Google Fonts
const googleFonts = document.createElement('link');
googleFonts.href = 'https://fonts.googleapis.com/css2?family=Poppins:wght@400;700&display=swap';
googleFonts.rel = 'stylesheet';
document.head.appendChild(googleFonts);
// Add App CSS
const appStyles = document.createElement('style');
appStyles.innerHTML = `
body {
font-family: 'Poppins', sans-serif;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
}
.title {
text-align: center;
font-size: 24px;
margin-bottom: 30px;
color: #333;
}
.image-preview {
display: flex;
justify-content: center;
align-items: center;
height: 300px;
background-color: #f0f0f0;
border: 1px solid #ccc;
margin-bottom: 20px;
}
.image-preview img {
max-width: 100%;
max-height: 100%;
object-fit: contain;
}
.image-upload {
margin-bottom: 20px;
}
.image-upload input[type="file"] {
display: none;
}
.image-upload label {
display: block;
text-align: center;
padding: 10px 20px;
background-color: #333;
color: #fff;
border-radius: 5px;
cursor: pointer;
}
.effects {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 20px;
}
.effect {
flex: 1 0 200px;
height: 100px;
background-color: #f0f0f0;
border: 1px solid #ccc;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.effect:hover {
background-color: #e0e0e0;
}
.effect img {
max-width: 100%;
max-height: 100%;
object-fit: cover;
border-radius: 5px;
}
.text-effect {
margin-bottom: 20px;
}
.text-effect input {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
}
.save-button {
text-align: center;
}
.save-button button {
padding: 10px 20px;
background-color: #333;
color: #fff;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.save-button button:hover {
background-color: #222;
}
`;
document.head.appendChild(appStyles);
});
// Image Upload
function handleImageUpload(event) {
const file = event.target.files[0];
const imagePreview = document.querySelector('.image-preview');
const image = document.createElement('img');
const reader = new FileReader();
reader.onload = function(e) {
image.src = e.target.result;
imagePreview.innerHTML = '';
imagePreview.appendChild(image);
}
reader.readAsDataURL(file);
}
// Apply Effect
function applyEffect(event) {
const effect = event.target.getAttribute('data-effect');
const imagePreview = document.querySelector('.image-preview img');
imagePreview.style.filter = effect;
}
// Save Image
function saveImage() {
const imagePreview = document.querySelector('.image-preview img');
const link = document.createElement('a');
link.href = imagePreview.src;
link.download = 'edited_image.png';
link.click();
}
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>
<style>
/* App CSS Goes Here */
</style>
</head>
<body>
<div id="main-container" class="container">
<h1 class="title">Editor de Imagens com Efeitos</h1>
<div class="image-preview">
<img src="" alt="Imagem">
</div>
<div class="image-upload">
<input type="file" id="image-input" accept="image/*" onchange="handleImageUpload(event)">
<label for="image-input">Adicionar Imagem</label>
</div>
<h2 class="title">Efeitos</h2>
<div class="effects">
<div class="effect" data-effect="blur(5px)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Blur" alt="Blur">
</div>
<div class="effect" data-effect="brightness(150%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Brightness" alt="Brightness">
</div>
<div class="effect" data-effect="contrast(150%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Contrast" alt="Contrast">
</div>
<div class="effect" data-effect="grayscale(100%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Grayscale" alt="Grayscale">
</div>
<div class="effect" data-effect="hue-rotate(90deg)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Hue Rotate" alt="Hue Rotate">
</div>
<div class="effect" data-effect="invert(100%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Invert" alt="Invert">
</div>
<div class="effect" data-effect="opacity(50%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Opacity" alt="Opacity">
</div>
<div class="effect" data-effect="saturate(200%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Saturate" alt="Saturate">
</div>
<div class="effect" data-effect="sepia(100%)" onclick="applyEffect(event)">
<img src="https://via.placeholder.com/200x100.png?text=Sepia" alt="Sepia">
</div>
</div>
<h2 class="title">Texto</h2>
<div class="text-effect">
<input type="text" placeholder="Digite o texto do efeito">
</div>
<div class="save-button">
<button onclick="saveImage()">Salvar</button>
</div>
</div>
</body>
</html>
NEW APPS
These are apps made by the community!