1*37748cd8SNickeau<?php 2*37748cd8SNickeau/** 3*37748cd8SNickeau * Copyright (c) 2021. ComboStrap, Inc. and its affiliates. All Rights Reserved. 4*37748cd8SNickeau * 5*37748cd8SNickeau * This source code is licensed under the GPL license found in the 6*37748cd8SNickeau * COPYING file in the root directory of this source tree. 7*37748cd8SNickeau * 8*37748cd8SNickeau * @license GPL 3 (https://www.gnu.org/licenses/gpl-3.0.en.html) 9*37748cd8SNickeau * @author ComboStrap <support@combostrap.com> 10*37748cd8SNickeau * 11*37748cd8SNickeau */ 12*37748cd8SNickeau 13*37748cd8SNickeaunamespace ComboStrap; 14*37748cd8SNickeau 15*37748cd8SNickeau 16*37748cd8SNickeauclass Unit 17*37748cd8SNickeau{ 18*37748cd8SNickeau 19*37748cd8SNickeau /** 20*37748cd8SNickeau * Calculates pixel size for any given SVG size 21*37748cd8SNickeau * 22*37748cd8SNickeau * @credit https://github.com/lechup/svgpureinsert/blob/master/helper.php#L72 23*37748cd8SNickeau * @param $value 24*37748cd8SNickeau * @return int 25*37748cd8SNickeau */ 26*37748cd8SNickeau static public function toPixel($value) { 27*37748cd8SNickeau if(!preg_match('/^(\d+?(\.\d*)?)(in|em|ex|px|pt|pc|cm|mm)?$/', $value, $m)) return 0; 28*37748cd8SNickeau 29*37748cd8SNickeau $digit = (double) $m[1]; 30*37748cd8SNickeau $unit = (string) $m[3]; 31*37748cd8SNickeau 32*37748cd8SNickeau $dpi = 72; 33*37748cd8SNickeau $conversions = array( 34*37748cd8SNickeau 'in' => $dpi, 35*37748cd8SNickeau 'em' => 16, 36*37748cd8SNickeau 'ex' => 12, 37*37748cd8SNickeau 'px' => 1, 38*37748cd8SNickeau 'pt' => $dpi / 72, # 1/27 of an inch 39*37748cd8SNickeau 'pc' => $dpi / 6, # 1/6 of an inch 40*37748cd8SNickeau 'cm' => $dpi / 2.54, # inch to cm 41*37748cd8SNickeau 'mm' => $dpi / (2.54 * 10), # inch to cm, 42*37748cd8SNickeau ); 43*37748cd8SNickeau 44*37748cd8SNickeau if(isset($conversions[$unit])) { 45*37748cd8SNickeau $digit = $digit * (float) $conversions[$unit]; 46*37748cd8SNickeau } 47*37748cd8SNickeau 48*37748cd8SNickeau return $digit; 49*37748cd8SNickeau } 50*37748cd8SNickeau 51*37748cd8SNickeau 52*37748cd8SNickeau} 53