mirror of
https://github.com/Chouchen/svgToImage.git
synced 2020-02-03 22:08:42 +01:00
Text with fonts, size and transformations
This commit is contained in:
parent
eaad24cbf3
commit
f05a5c0647
@ -387,7 +387,7 @@ class SVGTOIMAGE{
|
|||||||
for($i=0;$i<$empty;$i++){
|
for($i=0;$i<$empty;$i++){
|
||||||
$tiret[] = IMG_COLOR_TRANSPARENT;
|
$tiret[] = IMG_COLOR_TRANSPARENT;
|
||||||
}
|
}
|
||||||
if($this->_debug) $this->_log->message('nouveaux tirets : '.Log::decode($tiret));
|
//if($this->_debug) $this->_log->message('nouveaux tirets : '.Log::decode($tiret));
|
||||||
return $tiret;
|
return $tiret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -686,12 +686,12 @@ class SVGTOIMAGE{
|
|||||||
}
|
}
|
||||||
/*END OF EXPERIMENT*/
|
/*END OF EXPERIMENT*/
|
||||||
|
|
||||||
private function _drawPolygon($polygon, $stroke, $fill = ''){
|
private function _drawPolygon($polygon, $stroke = '', $fill = ''){
|
||||||
//if($this->_debug) $this->_log->message('_drawPolygon : fill : '.$fill.' stroke:'.$stroke);
|
//if($this->_debug) $this->_log->message('_drawPolygon : fill : '.$fill.' stroke:'.$stroke);
|
||||||
if($fill !== '' && count($polygon) >= 6){
|
if($fill !== '' && count($polygon) >= 6){
|
||||||
//if($this->_debug) $this->_log->message('polygon rempli : '.$fill);
|
//if($this->_debug) $this->_log->message('polygon rempli : '.$fill);
|
||||||
imagefilledpolygon($this->_image,$polygon,count($polygon)/2,$fill);
|
imagefilledpolygon($this->_image,$polygon,count($polygon)/2,$fill);
|
||||||
imagepolygon($this->_image, $polygon, count($polygon)/2, $stroke);
|
if($stroke != '') imagepolygon($this->_image, $polygon, count($polygon)/2, $stroke);
|
||||||
}elseif(count($polygon) >= 6){
|
}elseif(count($polygon) >= 6){
|
||||||
//if($this->_debug) $this->_log->message('polygon non rempli : '.$stroke);
|
//if($this->_debug) $this->_log->message('polygon non rempli : '.$stroke);
|
||||||
imagepolygon($this->_image, $polygon, count($polygon)/2, $stroke);
|
imagepolygon($this->_image, $polygon, count($polygon)/2, $stroke);
|
||||||
@ -726,7 +726,7 @@ class SVGTOIMAGE{
|
|||||||
if($this->_debug && !$thickness) $this->_log->error('Erreur dans la mise en place de l\'épaisseur du trait');
|
if($this->_debug && !$thickness) $this->_log->error('Erreur dans la mise en place de l\'épaisseur du trait');
|
||||||
else $this->_log->message('épaisseur du trait à : '.$this->_parseInt($strokeWidth));
|
else $this->_log->message('épaisseur du trait à : '.$this->_parseInt($strokeWidth));
|
||||||
|
|
||||||
$colorStroke = $stroke != '' ? $this->_allocateColor($stroke) : $this->_allocateColor('black');
|
$colorStroke = $stroke != '' ? $this->_allocateColor($stroke) : $fill === '' ? $this->_allocateColor('black') : '';
|
||||||
$colorFill = $fill != '' ? $this->_allocateColor($fill) : '';
|
$colorFill = $fill != '' ? $this->_allocateColor($fill) : '';
|
||||||
|
|
||||||
if($this->_debug) $this->_log->message('colors ! fill:'.$colorFill.'stroke:'.$colorStroke);
|
if($this->_debug) $this->_log->message('colors ! fill:'.$colorFill.'stroke:'.$colorStroke);
|
||||||
@ -935,18 +935,36 @@ class SVGTOIMAGE{
|
|||||||
$fontFamily = 'SansSerif';
|
$fontFamily = 'SansSerif';
|
||||||
$fontStyle = 'normal';
|
$fontStyle = 'normal';
|
||||||
$fontWeight = 'normal';
|
$fontWeight = 'normal';
|
||||||
|
|
||||||
extract($this->_getParams($textNode));
|
extract($this->_getParams($textNode));
|
||||||
|
|
||||||
|
//case translation
|
||||||
if($this->_getParam('originX') !== null){
|
if($this->_getParam('originX') !== null){
|
||||||
$x += $this->_getParam('originX');
|
$x += $this->_getParam('originX');
|
||||||
}
|
}
|
||||||
if($this->_getParam('originY') !== null){
|
if($this->_getParam('originY') !== null){
|
||||||
$y += $this->_getParam('originY');
|
$y += $this->_getParam('originY');
|
||||||
}
|
}
|
||||||
|
//end translation
|
||||||
|
//case rotation
|
||||||
|
if($this->_getParam('rotate') !== null){
|
||||||
|
$r = $this->_getParam('rotate');
|
||||||
|
}
|
||||||
|
//end rotation
|
||||||
|
//case scale
|
||||||
|
if($this->_getParam('scale') !== null) $fontSize *= ($this->_getParam('scale') -1);
|
||||||
|
//end scale
|
||||||
|
|
||||||
if($textNode == '')
|
if($textNode == '')
|
||||||
return;
|
return;
|
||||||
$colorStroke = $this->_allocateColor((string)$fill);
|
$colorStroke = $this->_allocateColor((string)$fill);
|
||||||
imagestring ( $this->_image , 2 , $x , $y , rtrim($textNode) , $fill );
|
|
||||||
|
$fontfile = file_exists('fonts/'.strtolower($fontFamily).'.ttf') ? 'fonts/'.strtolower($fontFamily).'.ttf' : 'fonts/arial.ttf';
|
||||||
|
|
||||||
|
if($this->_debug) $this->_log->message('text '.rtrim($textNode).' avec typo :'.$fontfile.' de taille '.$fontSize);
|
||||||
|
if($this->_debug) $this->_log->message('text avec rotation : '.$r);
|
||||||
|
//imagestring ( $this->_image , 2 , $x , $y , rtrim($textNode) , $fill );
|
||||||
|
imagettftext ( $this->_image , (double)$fontSize , $r , $x , $y , $colorStroke , $fontfile , rtrim($textNode) );
|
||||||
imagecolordeallocate( $this->_image, $colorStroke);
|
imagecolordeallocate( $this->_image, $colorStroke);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1024,9 +1042,9 @@ class SVGTOIMAGE{
|
|||||||
//end rotation
|
//end rotation
|
||||||
//case scale
|
//case scale
|
||||||
if($this->_getParam('scale') !== null){
|
if($this->_getParam('scale') !== null){
|
||||||
$xrapport = ($x2 - $x1) / $this->_getParam('scale');
|
$xrapport = ($x2 - $x1) * ($this->_getParam('scale') -1);
|
||||||
$x2 += $xrapport;
|
$x2 += $xrapport;
|
||||||
$yrapport = ($y2 - $y1) / $this->_getParam('scale');
|
$yrapport = ($y2 - $y1) * ($this->_getParam('scale') -1);
|
||||||
$y2 += $yrapport;
|
$y2 += $yrapport;
|
||||||
if($this->_debug) $this->_log->message('scale by '.Log::decode($this->_getParam('scale')).':'.Log::decode($xrapport).' - '.Log::decode($yrapport));
|
if($this->_debug) $this->_log->message('scale by '.Log::decode($this->_getParam('scale')).':'.Log::decode($xrapport).' - '.Log::decode($yrapport));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user