PHP: слияние двух изображений как одно (GD и Imagick)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 PHP: слияние двух изображений как одно (GD и Imagick)

Сообщение Anonymous »

Мы надеемся, что это сообщение найдет вас хорошо! /> Мы пытаемся достичь того же самого для одного из нашего веб -сайта. Мы смогли разместить изображение на изображении, однако, не удалось показывать баннер как идеальное, как на изображении выше.
Здесь, наше сгенерированное изображение. Не выровнен, как это есть в ссылке.function mergeImage($sideImg = null, $backImg = null)
{
$directory = __DIR__ . '/images/';

for ($idx = 1; $idx 0) {
$sidBnrImg = imagerotate($sidBnrImg, $rotation, 0);
}

$sidBnrImg = imagescale($sidBnrImg, $scaleWidth, $scaleHeight);

imagecopymerge($baseImg, $sidBnrImg, $dstX, $dstY, 0, 0, $scaleWidth, $scaleHeight, 90);
imagedestroy($sidBnrImg);
}

// append back image
if ($backImg !== null) {
$bckBnrImg = imagecreatefromjpeg($backImg);
$scaleData = getBackBannerScale($idx);

$scaleWidth = $scaleData['scaleWidth'];
$scaleHeight = $scaleData['scaleHeight'];
$dstX = $scaleData['dstX'];
$dstY = $scaleData['dstY'];
$rotation = $scaleData['rotation'];

if ($rotation > 0) {
$bckBnrImg = imagerotate($bckBnrImg, $rotation, 0);
}

$bckBnrImg = imagescale($bckBnrImg, $scaleWidth, $scaleHeight);

imagecopymerge($baseImg, $bckBnrImg, $dstX, $dstY, 0, 0, $scaleWidth, $scaleHeight, 90);
}

imagepng($baseImg, './processed/' . $idx . '.png');
imagedestroy($baseImg);
}
}

mergeImage('./0.jpg');

function getSideBannerScale($indx)
{
$scaleData = [
1 => [
'scaleWidth' => 550,
'scaleHeight' => 251,
'dstX' => 292,
'dstY' => 114,
'rotation' => 0
],
2 => [
'scaleWidth' => 505,
'scaleHeight' => 248,
'dstX' => 353,
'dstY' => 114,
'rotation' => 0
],
3 => [
'scaleWidth' => 375,
'scaleHeight' => 225,
'dstX' => 428,
'dstY' => 122,
'rotation' => 0,
],
4 => [
'scaleWidth' => 222,
'scaleHeight' => 215,
'dstX' => 505,
'dstY' => 125,
'rotation' => 0
],
5 => [
'scaleWidth' => 155,
'scaleHeight' => 225,
'dstX' => 570,
'dstY' => 122,
'rotation' => 2
],
6 => [
'scaleWidth' => 50,
'scaleHeight' => 210,
'dstX' => 272,
'dstY' => 127,
'rotation' => 342
],
7 => [
'scaleWidth' => 220,
'scaleHeight' => 215,
'dstX' => 173,
'dstY' => 130,
'rotation' => 0
],
8 => [
'scaleWidth' => 415,
'scaleHeight' => 232,
'dstX' => 57,
'dstY' => 120,
'rotation' => 0
],
9 => [
'scaleWidth' => 492,
'scaleHeight' => 248,
'dstX' => 53,
'dstY' => 115,
'rotation' => 0
],
10 => [
'scaleWidth' => 552,
'scaleHeight' => 253,
'dstX' => 56,
'dstY' => 114,
'rotation' => 0
],
11 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 230,
'dstY' => 122,
'rotation' => 0
],
12 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
13 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
14 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
15 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
16 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
17 => [
'scaleWidth' => 470,
'scaleHeight' => 225,
'dstX' => 200,
'dstY' => 122,
'rotation' => 0
],
18 => [
'scaleWidth' => 528,
'scaleHeight' => 246,
'dstX' => 257,
'dstY' => 117,
'rotation' => 0
]
];

return $scaleData[$indx];
}

function getBackBannerScale($indx)
{
$scaleData = [
1 => [
'scaleWidth' => 550,
'scaleHeight' => 251,
'dstX' => 292,
'dstY' => 114,
'rotation' => 0
],
2 => [
'scaleWidth' => 505,
'scaleHeight' => 248,
'dstX' => 353,
'dstY' => 114,
'rotation' => 0
],
3 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
4 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
5 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
6 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
7 => [
'scaleWidth' => 220,
'scaleHeight' => 215,
'dstX' => 173,
'dstY' => 130,
'rotation' => 0
],
8 => [
'scaleWidth' => 415,
'scaleHeight' => 222,
'dstX' => 57,
'dstY' => 120,
'rotation' => 0
],
9 => [
'scaleWidth' => 488,
'scaleHeight' => 242,
'dstX' => 57,
'dstY' => 115,
'rotation' => 0
],
10 => [
'scaleWidth' => 553,
'scaleHeight' => 251,
'dstX' => 50,
'dstY' => 115,
'rotation' => 0
],
11 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
12 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
13 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
14 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
15 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
16 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 430,
'dstY' => 122,
'rotation' => 0
],
17 => [
'scaleWidth' => 370,
'scaleHeight' => 225,
'dstX' => 247,
'dstY' => 122,
'rotation' => 0
],
18 => [
'scaleWidth' => 528,
'scaleHeight' => 246,
'dstX' => 257,
'dstY' => 117,
'rotation' => 0
]
];

return $scaleData[$indx];
}


Подробнее здесь: https://stackoverflow.com/questions/795 ... nd-imagick
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»