J'essaie de créer une fonctionnalité sur un site Web qui permet à un utilisateur de télécharger une image png en utilisant javascript, puis en haut de ce new pngimage utilisant PHP gd qui a des cercles transparents pour que l'image ci-dessous apparaisse bien. J'utiliserai alors la fonction imagecopymerge pour les fusionner ensemble. Ce serait génial si tout cela pouvait être fait en utilisant AJAX, sans l'utilisation de sauver l'image des utilisateurs ou l'image PHP gd dans une base de données. L'utilisateur devra alors être en mesure de sauvegarder la nouvelle image combinée terminée sur son compte.Comment mettre une image PHP gd créée dans un canevas par-dessus une image existante
Le problème principal que j'ai est de savoir comment obtenir l'image PHP gd à afficher sur le canevas que l'image est sur ou toute autre toile.
La page principale
<div class= "box2">
<form enctype="multipart/form-data">
<h4>Step 1: Select an image to upload</h4>
<div class= "canvas">
<input type="file" id="imageLoader" name="imageLoader"/>
<br>
<canvas id="imageCanvas"></canvas>
<script>
var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);
var canvas = document.getElementById('imageCanvas');
var ctx = canvas.getContext('2d');
function handleImage(e){
var reader = new FileReader();
reader.onload = function(event){
var img = new Image();
img.onload = function(){
canvas.width = img.width;
canvas.height = img.height;
ctx.drawImage(img,0,0);
}
img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}
</script>
</form>
</div>
<script>
$("document").ready(function(){
$(".stuff3").submit(function() {
event.preventDefault();
$.post("stuff3.php", $(".stuff3").serialize() , function(data){
$("#imageCanvas").html(data);
});
});
});
</script>
<form action= "stuff3.php" method= "post">
<h4>Step 2: Choose a Size</h4>
<input type="number" placeholder="Height" name="height" min="1" max="10" step="1" />
<input type="number" placeholder="Width" name="width" min="1" max="12" step="1" />
<button id="loginbutton" type="submit" value="Submit"> Create Size</button>
</form>
</div>
Le PHP pour créer l'image
<?php
$h= $_POST['height'];
$w= $_POST['width'];
header('Content-type: image/png');
$png_image = imagecreate(100*$w, 100*$h);
$grey = imagecolorallocate($png_image, 245, 245, 245);
$im = imagecreatetruecolor(55, 30);
$green = imagecolorallocate($png_image, 255, 255, 255);
imagecolortransparent($im, $green);
imagefilltoborder($png_image, 0, 0, $grey, $grey);
$x=50;
$y=50;
$i;
$j;
for ($j=0;$j<=$h-1;$j++){
for ($i=0;$i<=$w;$i++) {
imagefilledellipse ($png_image, $x, $y, 75, 75, $green); // circle
$x+=100;
}
$x=50;
$y+=100;
}
imagepng($png_image);
imagedestroy($png_image);
?>
avez-vous lu cet article https://stackoverflow.com/questions/13198131/how-to-save-a-html5-canvas-as-image-on-a-server –
heureux je pourrais aider. Bienvenue sur stackoverflow .. (heures d'amusement! .. lol) –
J'ai mis mon propre upload.php (sous forme de fichier texte) à la racine de mon site http://rachelgallen.com/upload.txt - je renomme les images sur télécharger. Jetez un coup d'oeil, cela peut être utile. –