JavaScriptを使用してpng画像をアップロードした後、その場所の上にaを挿入する機能をウェブサイトに作成しようとしています。透明な円を持つPHP gdを使った新しいpngimage。下の画像が表示されます。うまくいけば、imagecopymerge関数を使ってそれらを一緒にマージします。ユーザの画像やPHPのgdイメージをデータベースに保存しなくても、AJAXを使ってこれをすべて行うことができれば幸いです。ユーザーは、新しい仕上がりの合成画像をアカウントに保存できる必要があります。既存の画像の上部にキャンバスにPHP gdで作成した画像を配置する方法
私が抱えている主な問題は、画像がキャンバス上に表示されるか、または他のキャンバスに表示されるようにPHP gdイメージを取得する方法です。
メインページ
<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>
あなたの質問から
<?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);
?>
あなたはこの記事を読んでいましたか?https://stackoverflow.com/questions/13198131/how-to-save-a-html5-canvas-as-image-on-a-server –
私は助けてくれると幸せでした。ようこそstackoverflow ..(楽しい時間!..笑) –
私は私のサイトhttp://rachelgallen.com/upload.txtのルートに私自身のupload.php(テキストファイルとして)を置く - 私はイメージの名前を変更アップロードする。見て、それは参考になるかもしれません。 –