ILIAS  release_5-3 Revision v5.3.23-19-g915713cf615
PHPExcel_Shared_Drawing Class Reference
+ Collaboration diagram for PHPExcel_Shared_Drawing:

Static Public Member Functions

static pixelsToEMU ($pValue=0)
 Convert pixels to EMU. More...
 
static EMUToPixels ($pValue=0)
 Convert EMU to pixels. More...
 
static pixelsToCellDimension ($pValue=0, PHPExcel_Style_Font $pDefaultFont)
 Convert pixels to column width. More...
 
static cellDimensionToPixels ($pValue=0, PHPExcel_Style_Font $pDefaultFont)
 Convert column width from (intrinsic) Excel units to pixels. More...
 
static pixelsToPoints ($pValue=0)
 Convert pixels to points. More...
 
static pointsToPixels ($pValue=0)
 Convert points to pixels. More...
 
static degreesToAngle ($pValue=0)
 Convert degrees to angle. More...
 
static angleToDegrees ($pValue=0)
 Convert angle to degrees. More...
 
static imagecreatefrombmp ($p_sFile)
 Create a new image from file. More...
 

Detailed Description

Definition at line 36 of file Drawing.php.

Member Function Documentation

◆ angleToDegrees()

static PHPExcel_Shared_Drawing::angleToDegrees (   $pValue = 0)
static

Convert angle to degrees.

Parameters
int$pValueAngle
Returns
int Degrees

Definition at line 164 of file Drawing.php.

Referenced by PHPExcel_Reader_Excel2007\load().

164  {
165  if ($pValue != 0) {
166  return round($pValue / 60000);
167  } else {
168  return 0;
169  }
170  }
+ Here is the caller graph for this function:

◆ cellDimensionToPixels()

static PHPExcel_Shared_Drawing::cellDimensionToPixels (   $pValue = 0,
PHPExcel_Style_Font  $pDefaultFont 
)
static

Convert column width from (intrinsic) Excel units to pixels.

Parameters
float$pValueValue in cell dimension
PHPExcel_Style_Font$pDefaultFontDefault font of the workbook
Returns
int Value in pixels

Definition at line 99 of file Drawing.php.

References PHPExcel_Shared_Font\$defaultColumnWidths, $name, $size, PHPExcel_Style_Font\getName(), and PHPExcel_Style_Font\getSize().

Referenced by PHPExcel_Writer_HTML\buildCSS(), and PHPExcel_Shared_Excel5\sizeCol().

99  {
100  // Font name and size
101  $name = $pDefaultFont->getName();
102  $size = $pDefaultFont->getSize();
103 
105  // Exact width can be determined
106  $colWidth = $pValue
109 
110  } else {
111  // We don't have data for this particular font and size, use approximation by
112  // extrapolating from Calibri 11
113  $colWidth = $pValue * $size
114  * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px']
115  / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] / 11;
116  }
117 
118  // Round pixels to closest integer
119  $colWidth = (int) round($colWidth);
120 
121  return $colWidth;
122  }
getName()
Get Name.
Definition: Font.php:231
$size
Definition: RandomTest.php:84
static $defaultColumnWidths
Definition: Font.php:151
if($format !==null) $name
Definition: metadata.php:146
getSize()
Get Size.
Definition: Font.php:262
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ degreesToAngle()

static PHPExcel_Shared_Drawing::degreesToAngle (   $pValue = 0)
static

Convert degrees to angle.

Parameters
int$pValueDegrees
Returns
int Angle

Definition at line 154 of file Drawing.php.

Referenced by PHPExcel_Writer_Excel2007_Drawing\_writeDrawing().

154  {
155  return (int)round($pValue * 60000);
156  }
+ Here is the caller graph for this function:

◆ EMUToPixels()

static PHPExcel_Shared_Drawing::EMUToPixels (   $pValue = 0)
static

Convert EMU to pixels.

Parameters
int$pValueValue in EMU
Returns
int Value in pixels

Definition at line 54 of file Drawing.php.

Referenced by PHPExcel_Reader_Excel2007\load().

54  {
55  if ($pValue != 0) {
56  return round($pValue / 9525);
57  } else {
58  return 0;
59  }
60  }
+ Here is the caller graph for this function:

◆ imagecreatefrombmp()

static PHPExcel_Shared_Drawing::imagecreatefrombmp (   $p_sFile)
static

Create a new image from file.

By alexander at alexauto dot nl

string $filename Path to Windows DIB (BMP) image resource

Definition at line 179 of file Drawing.php.

References $file, $header, $i, $r, $x, and $y.

Referenced by PHPExcel_Writer_Excel5\_buildWorkbookEscher().

180  {
181  // Load the image into a string
182  $file = fopen($p_sFile,"rb");
183  $read = fread($file,10);
184  while(!feof($file)&&($read<>""))
185  $read .= fread($file,1024);
186 
187  $temp = unpack("H*",$read);
188  $hex = $temp[1];
189  $header = substr($hex,0,108);
190 
191  // Process the header
192  // Structure: http://www.fastgraph.com/help/bmp_header_format.html
193  if (substr($header,0,4)=="424d")
194  {
195  // Cut it in parts of 2 bytes
196  $header_parts = str_split($header,2);
197 
198  // Get the width 4 bytes
199  $width = hexdec($header_parts[19].$header_parts[18]);
200 
201  // Get the height 4 bytes
202  $height = hexdec($header_parts[23].$header_parts[22]);
203 
204  // Unset the header params
205  unset($header_parts);
206  }
207 
208  // Define starting X and Y
209  $x = 0;
210  $y = 1;
211 
212  // Create newimage
213  $image = imagecreatetruecolor($width,$height);
214 
215  // Grab the body from the image
216  $body = substr($hex,108);
217 
218  // Calculate if padding at the end-line is needed
219  // Divided by two to keep overview.
220  // 1 byte = 2 HEX-chars
221  $body_size = (strlen($body)/2);
222  $header_size = ($width*$height);
223 
224  // Use end-line padding? Only when needed
225  $usePadding = ($body_size>($header_size*3)+4);
226 
227  // Using a for-loop with index-calculation instaid of str_split to avoid large memory consumption
228  // Calculate the next DWORD-position in the body
229  for ($i=0;$i<$body_size;$i+=3)
230  {
231  // Calculate line-ending and padding
232  if ($x>=$width)
233  {
234  // If padding needed, ignore image-padding
235  // Shift i to the ending of the current 32-bit-block
236  if ($usePadding)
237  $i += $width%4;
238 
239  // Reset horizontal position
240  $x = 0;
241 
242  // Raise the height-position (bottom-up)
243  $y++;
244 
245  // Reached the image-height? Break the for-loop
246  if ($y>$height)
247  break;
248  }
249 
250  // Calculation of the RGB-pixel (defined as BGR in image-data)
251  // Define $i_pos as absolute position in the body
252  $i_pos = $i*2;
253  $r = hexdec($body[$i_pos+4].$body[$i_pos+5]);
254  $g = hexdec($body[$i_pos+2].$body[$i_pos+3]);
255  $b = hexdec($body[$i_pos].$body[$i_pos+1]);
256 
257  // Calculate and draw the pixel
258  $color = imagecolorallocate($image,$r,$g,$b);
259  imagesetpixel($image,$x,$height-$y,$color);
260 
261  // Raise the horizontal position
262  $x++;
263  }
264 
265  // Unset the body / free the memory
266  unset($body);
267 
268  // Return image-object
269  return $image;
270  }
$x
Definition: example_009.php:98
$r
Definition: example_031.php:79
$y
Definition: example_007.php:83
$i
Definition: disco.tpl.php:19
if(!file_exists("$old.txt")) if($old===$new) if(file_exists("$new.txt")) $file
+ Here is the caller graph for this function:

◆ pixelsToCellDimension()

static PHPExcel_Shared_Drawing::pixelsToCellDimension (   $pValue = 0,
PHPExcel_Style_Font  $pDefaultFont 
)
static

Convert pixels to column width.

Exact algorithm not known. By inspection of a real Excel file using Calibri 11, one finds 1000px ~ 142.85546875 This gives a conversion factor of 7. Also, we assume that pixels and font size are proportional.

Parameters
int$pValueValue in pixels
PHPExcel_Style_Font$pDefaultFontDefault font of the workbook
Returns
int Value in cell dimension

Definition at line 71 of file Drawing.php.

References PHPExcel_Shared_Font\$defaultColumnWidths, $name, $size, PHPExcel_Style_Font\getName(), and PHPExcel_Style_Font\getSize().

Referenced by PHPExcel_Shared_Font\calculateColumnWidth().

71  {
72  // Font name and size
73  $name = $pDefaultFont->getName();
74  $size = $pDefaultFont->getSize();
75 
77  // Exact width can be determined
78  $colWidth = $pValue
81  } else {
82  // We don't have data for this particular font and size, use approximation by
83  // extrapolating from Calibri 11
84  $colWidth = $pValue * 11
85  * PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width']
86  / PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] / $size;
87  }
88 
89  return $colWidth;
90  }
getName()
Get Name.
Definition: Font.php:231
$size
Definition: RandomTest.php:84
static $defaultColumnWidths
Definition: Font.php:151
if($format !==null) $name
Definition: metadata.php:146
getSize()
Get Size.
Definition: Font.php:262
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pixelsToEMU()

static PHPExcel_Shared_Drawing::pixelsToEMU (   $pValue = 0)
static

Convert pixels to EMU.

Parameters
int$pValueValue in pixels
Returns
int Value in EMU

Definition at line 44 of file Drawing.php.

Referenced by PHPExcel_Writer_Excel2007_Drawing\_writeChart(), and PHPExcel_Writer_Excel2007_Drawing\_writeDrawing().

44  {
45  return round($pValue * 9525);
46  }
+ Here is the caller graph for this function:

◆ pixelsToPoints()

static PHPExcel_Shared_Drawing::pixelsToPoints (   $pValue = 0)
static

Convert pixels to points.

Parameters
int$pValueValue in pixels
Returns
int Value in points

Definition at line 130 of file Drawing.php.

Referenced by PHPExcel_Writer_HTML\buildCSS().

130  {
131  return $pValue * 0.67777777;
132  }
+ Here is the caller graph for this function:

◆ pointsToPixels()

static PHPExcel_Shared_Drawing::pointsToPixels (   $pValue = 0)
static

Convert points to pixels.

Parameters
int$pValueValue in points
Returns
int Value in pixels

Definition at line 140 of file Drawing.php.

Referenced by PHPExcel_Shared_Excel5\sizeRow().

140  {
141  if ($pValue != 0) {
142  return (int) ceil($pValue * 1.333333333);
143  } else {
144  return 0;
145  }
146  }
+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: