137748cd8SNickeau<?php 237748cd8SNickeau/** 337748cd8SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved. 437748cd8SNickeau * 537748cd8SNickeau * This source code is licensed under the GPL license found in the 637748cd8SNickeau * COPYING file in the root directory of this source tree. 737748cd8SNickeau * 837748cd8SNickeau * @license GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 937748cd8SNickeau * @author ComboStrap <support@combostrap.com> 1037748cd8SNickeau * 1137748cd8SNickeau */ 1237748cd8SNickeau 1337748cd8SNickeaunamespace ComboStrap; 1437748cd8SNickeau 1537748cd8SNickeau 1637748cd8SNickeauclass Unit 1737748cd8SNickeau{ 1837748cd8SNickeau 1937748cd8SNickeau /** 2037748cd8SNickeau * Calculates pixel size for any given SVG size 2137748cd8SNickeau * 2237748cd8SNickeau * @credit https://github.com/lechup/svgpureinsert/blob/master/helper.php#L72 2337748cd8SNickeau * @param $value 2437748cd8SNickeau * @return int 2537748cd8SNickeau */ 26*70bbd7f1Sgerardnico static public function toPixel($value) 27*70bbd7f1Sgerardnico { 2837748cd8SNickeau if (!preg_match('/^(\d+?(\.\d*)?)(in|em|ex|px|pt|pc|cm|mm)?$/', $value, $m)) return 0; 2937748cd8SNickeau 3037748cd8SNickeau $digit = (double)$m[1]; 31*70bbd7f1Sgerardnico $unit = $m[3] ?? null; 3237748cd8SNickeau 3337748cd8SNickeau $dpi = 72; 3437748cd8SNickeau $conversions = array( 3537748cd8SNickeau 'in' => $dpi, 3637748cd8SNickeau 'em' => 16, 3737748cd8SNickeau 'ex' => 12, 3837748cd8SNickeau 'px' => 1, 3937748cd8SNickeau 'pt' => $dpi / 72, # 1/27 of an inch 4037748cd8SNickeau 'pc' => $dpi / 6, # 1/6 of an inch 4137748cd8SNickeau 'cm' => $dpi / 2.54, # inch to cm 4237748cd8SNickeau 'mm' => $dpi / (2.54 * 10), # inch to cm, 4337748cd8SNickeau ); 4437748cd8SNickeau 4537748cd8SNickeau if (isset($conversions[$unit])) { 4637748cd8SNickeau $digit = $digit * (float)$conversions[$unit]; 4737748cd8SNickeau } 4837748cd8SNickeau 4937748cd8SNickeau return $digit; 5037748cd8SNickeau } 5137748cd8SNickeau 5237748cd8SNickeau 5337748cd8SNickeau} 54