2010-04-08 2 views
3

У меня классный фрагмент кода, который хорошо работает, кроме одного.php добавление изображений в другое изображение, точное позиционирование

Код примет значок, который я хочу добавить к существующему изображению. Я могу позиционировать его там, где хочу! Это именно то, что мне нужно сделать.

Однако я застрял на одном, касающемся места размещения.

Код «исходное положение» (на основном изображении: navIcons.png) находится справа внизу.

У меня есть две переменные: $ 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'); 
?> 

Для тех, кто задается вопросом, почему я даже потрудился сделать это. Вкратце, мне нравится добавлять значки 16x16 к одному одиночному изображению, используя css для отображения этого индивидуального значка. Это связано с тем, что я загружаю изображение (спрайт) и открываю фотошоп, добавляю новый значок (позиционирую его) и повторно загружаю его на сервер. Не массовое испытание, а просто развлечение с php.

ответ

0
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, начиная с х, у координаты 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); 
0

Оказывается, я не быть более простой, чем я должен быть.

Это уже позиционированию мне нужно, мне просто нужно НЕ усложняют INT $ dst_x/$ dst_y.

Я положил простые целые числа, и он работает.

Смежные вопросы