У меня классный код кода, который работает хорошо, кроме одного.
В коде появится значок, который я хочу добавить к существующему изображению. Я могу позиционировать его там, где хочу! Это именно то, что мне нужно сделать.
Тем не менее, я застрял в одном, касающемся размещения.
Код «Начальная позиция» (на главном изображении: navIcons.png) находится справа внизу.
У меня есть 2 переменные: $ move_left = 10; & $ move_up = 8 ;. Таким образом, я могу разместить значок icon.png 10px слева и 8px вверх, начиная с нижнего правого угла.
Я действительно очень хочу начать позиционирование с верхних левых изображений, поэтому я действительно перемещаю значок 10px справа и 8px вниз, из верхней левой позиции основного изображения.
Может кто-то посмотреть на мой код и посмотреть, не хватает ли я чего-то, что инвертирует эту стартовую позицию?
<?php function attachIcon($imgname) { $mark = imagecreatefrompng($imgname); imagesavealpha($mark, true); list($icon_width, $icon_height) = getimagesize($imgname); $img = imagecreatefrompng('images/sprites/navIcons.png'); imagesavealpha($img, true); $move_left = 10; $move_up = 9; list($mainpic_width, $mainpic_height) = getimagesize('images/sprites/navIcons.png'); imagecopy($img, $mark, $mainpic_width-$icon_width-$move_left, $mainpic_height-$icon_height-$move_up, 0, 0, $icon_width, $icon_height); imagepng($img); // display the image + positioned icon in the browser //imagepng($img,'newnavIcon.png'); // rewrite the image with icon attached. } header('Content-Type: image/png'); attachIcon('icon.png'); ?>
Для тех, кто задается вопросом, почему я даже потрудился сделать это. Вкратце, мне нравится добавлять значки 16×16 к одному одиночному изображению, используя css для отображения этого индивидуального значка. Это связано с тем, что я загружаю изображение (спрайт) и открываю фотошоп, добавляю новый значок (позиционирую его) и повторно загружаю его на сервер. Не массовое испытание, а просто развлечение с php.
bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )
Скопируйте часть src_im на dst_im, начиная с координат x, y src_x, src_y с шириной src_w и высотой src_h. Определенная часть будет скопирована на координаты x, y, dst_x и dst_y. ( PHP.net
$move_right = 10; $move_down = 8; imagecopy($img, $mark, $move_right, $move_down, 0, 0, $icon_width, $icon_height);
оказывается, я не более простой, чем должен быть.
Это уже к позиционированию, в котором я нуждаюсь, мне просто нужно НЕ усложнять int $ dst_x / $ dst_y.
Я помещаю простые целые числа, и он работает.