我有一個PHP腳本使用服務器上的圖像處理GD/ImageMagick庫來生成圖像上的文本字符串。拖放2張圖片將它們放置在背景上並將它們保存爲1張組合圖片?
下圖顯示了一個演示。
如果我生成了2行文字,將2行圖像堆疊在一起,並使用JavaScript來允許用戶碎片並放下以重新排列2幅圖像在背景圖像上的位置。
我怎麼能保存一個新的圖像與2個文本圖像在用戶位置在他們的位置?
UPDATE
下面是一個快速演示這就像我的演示圖像的圖像生成上述文本。
我會使用用戶數據將這些圖像加載到頁面中以生成他們想要的文本,然後使用JavaScript拖放它們。
當點擊一個提交按鈕時,我需要獲取所有用戶生成的文本圖像的座標,並將它們發佈到一個PHP腳本中,該腳本將生成一個新的大圖像,並將它們放置在用戶將其拖放到位。
- 我需要得到正確座標所需的幫助。
- 使用PHP側的這些座標構建一個新的圖像。
Demo JSFiddle加載一個像上面那樣的圖像文本文件。 https://jsfiddle.net/jasondavis/nreme6yf/
<?php
/* Create some objects */
$image = new Imagick();
$draw = new ImagickDraw();
$pixel = new ImagickPixel('black');
/* New image */
$image->newImage(1000, 175, $pixel);
/* text color */
//$draw->setFillColor('white');
/* Font properties */
if(isset($_GET['font'])){
$fontName = $_GET['font'];
}else{
$fontName = 'MISTRESS.ttf';
}
if(isset($_GET['font-size'])){
$fontSize = $_GET['font-size'];
}else{
$fontSize = 30;
}
if(isset($_GET['fill-color'])){
$fillColor = $_GET['fill-color'];
}else{
$fillColor = 'ffffff';
}
if(isset($_GET['stroke-color'])){
$strokeColor = $_GET['stroke-color'];
}else{
$strokeColor = '000000';
}
if(isset($_GET['stroke-width'])){
$strokeWidth = $_GET['stroke-width'];
}else{
$strokeWidth = 1;
}
if(isset($_GET['x'])){
$x = $_GET['x'];
}else{
$x = 10;
}
if(isset($_GET['y'])){
$y = $_GET['y'];
}else{
$y = 115;
}
if(isset($_GET['angle'])){
$angle = $_GET['angle'];
}else{
$angle = 0;
}
if(isset($_GET['text'])){
$text = $_GET['text'];
}else{
$text = 'The quick brown fox jumps over the lazy dog';
}
$draw->setFont('fonts-ttf/'.$fontName);
$draw->setFontSize($fontSize);
$draw->setFillColor('#'.$fillColor);
$draw->setStrokeColor(new ImagickPixel('#'.$strokeColor));
$draw->setStrokeWidth($strokeWidth);
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
/* Create text */
$image->annotateImage($draw, $x, $y, $angle, $text);
/* Give image a format */
$image->setImageFormat('png');
/* Output the image with headers */
header('Content-type: image/png');
echo $image;
?>
不能在新的HTML canvas元素做這樣的事情? –
你問如何做拖放?或者如何將座標傳遞迴服務器?或者如何加入圖片?你期待使用Javascript或PHP的答案嗎?我們應該使用GD還是ImageMagick? –
@MarkSetchell我可以得到2個文本字符串圖像,就像上面顯示的那樣,我可以讓它們拖拽。我想要做的是創建一個新的圖像,將2個文本圖像定位到用戶拖動到的地方。所以拖動後,我會假設將需要獲得屏幕上的所有文本圖像的座標,並張貼到服務器和服務器上創建一個新的圖像定位圖像使用座標....繼續... – JasonDavis