Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/06/2017, 14:43
TrinityCore
 
Fecha de Ingreso: agosto-2015
Ubicación: Rosario - Argentina
Mensajes: 424
Antigüedad: 8 años, 8 meses
Puntos: 12
Centrar imagen php

Buenas!

Verán. quiero lograr centrar una imagen repetitiva con PHP tal como se logra con CSS

Es decir... que sin importar el ancho / alto del contenedor, la imagen queda perfectamente centrada.
Quisiera saber cual es el calculo que se usa para sacar dichas medidas en php.

Aquí tengo dos imágenes de ejemplo, 1 que es de 100x100 y que la caja que esta dentro es de 50x50, luego otra de 130x130 y la misma caja de 50x50.

Y vemos como sin importar el tamaño con CSS se logra centrar siempre, pero con php no lo he logrado, solo he conseguido centrarlo siempre y cuando la dimensión del contenedor sea la mitad de la dimensión del objeto de adentro que tiene en este caso 50x50. Es decir que si el contenedor tiene 100x100, 150x150, 200x200 Largo etc... la imagen se centra perfecto como con CSS, pero no con por ej: 110x110, 130x130 Largo etc...

Aqui dejare las imagenes para que vean lo que quiero conseguir y el code que uso para copiar las imagenes dentro del contenedor.

IMG 100x100:
http://trinitygames.esy.es/100x100.png
IMG 130x130:
http://trinitygames.esy.es/130x130.png

CODE:
Código PHP:
if(self::$ImagenPositionV == "center"){ // En caso de que quiera centrarse en vertical
                
self::$ImagenPositionY self::$ImagenNuevoAlto/self::$ImagenAlto;
                
self::$ImagenPositionY = -self::$ImagenAlto/self::$ImagenPositionY;
            }else{
                
self::$ImagenPositionY 0;
            }
            if(
self::$ImagenPositionH == "center"){ // En caso de que quiera centrarse en horizontal
                
self::$ImagenPositionX self::$ImagenNuevoAncho/self::$ImagenAncho;
                
self::$ImagenPositionX = -self::$ImagenAncho/self::$ImagenPositionX;
            }else{
                
self::$ImagenPositionX 0;
            }

            for(
$i self::$ImagenPositionX$i self::$ImagenNuevoAncho$i+=self::$ImagenAncho){

                
self::$ImagenFinal imagecopy(self::$ImagenNuevaself::$Imagen$i000self::$ImagenAnchoself::$ImagenAlto);

                for(
$y self::$ImagenPositionY$y self::$ImagenNuevoAlto$y+=self::$ImagenAlto){

                    
self::$ImagenFinal imagecopy(self::$ImagenNuevaself::$Imagen$i$y00self::$ImagenAnchoself::$ImagenAlto);

                }

            } 
Con ese code solo consigo centrarla cuando la division de contenedor y caja da un valor entero y no decimal, tal como 100/50, 150/50, etc..

Espero me ayuden, gracias!