馃搻 Convertir Pixeles a Cent铆metros en PHP
En mi trabajo diario con im谩genes, muchas veces necesito convertir medidas de pixeles a cent铆metros, especialmente cuando trabajo con generaci贸n de PDFs, dise帽o para impresi贸n o manipulaci贸n de im谩genes. Para facilitarme la vida, tengo una funci贸n en PHP que utilizo constantemente
馃 驴Qu茅 hace esta funci贸n?
La funci贸n recibe como par谩metros un Array asociativo con las claves width y height de la imagen de la cual necesitas saber los centimetros, tambien recibe los DPI (Dots Per Inch) 贸 (puntos por pulgada), con esta informaci贸n se realizar谩 el calculo y regresar谩 un Array con los datos.
public function convertPixelToCentimeter($dataMeasures=[], $dpi="")
{
$arrayCentimeter = [];
if (empty($dataMeasures)) {
return false;
}
if(!isset($dataMeasures['width']) && !isset($dataMeasures['height']))
{
return false;
}
$dpiImage = ($dpi=="") ? 300 : $dpi;
$centimeterPerInch = 2.54; // 1 pulgada = 2.54 cm
$arrayCentimeter['width'] = round(($dataMeasures['width'] * $centimeterPerInch) / $dpiImage, 2);
$arrayCentimeter['height'] = round(($dataMeasures['height'] * $centimeterPerInch) / $dpiImage, 2);
return $arrayCentimeter;
}
馃М 驴C贸mo funciona?
La funcion recibe como parametro el array $dataMeasures donde contendra los datos width y height de la imagen, en dado caso que el array se encuentre vacio o que alguno de los datos no venga definido, la funcion regresara un false.
El parametro de $dpi puede estar vacio y se asignara un valor por defecto de 300 puntos por pulgada.
La variable $centimeterPerInch es una constante, el valor asignado es por que 1 pulgada equivale a 2.54 cm.
馃И Ejemplo de uso
El uso de la funcion puede darle al agregarla a un Helper o cualquier clase en PHP, a continuaci贸n dejo un ejemplo de como se puede usar en un ejercicio real.
<?php
$pixeles = ['width' => 1200, 'height' => 1800];
$utils = new Utils();
$cm = $utils->convertPixelToCentimeter($pixeles);
print_r($cm);
// Resultado: ['width' => 10.16, 'height' => 15.24]