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.

164 {
165 if ($pValue != 0) {
166 return round($pValue / 60000);
167 } else {
168 return 0;
169 }
170 }

Referenced by PHPExcel_Reader_Excel2007\load().

+ 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.

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 }
$size
Definition: RandomTest.php:84
static $defaultColumnWidths
Definition: Font.php:151
getSize()
Get Size.
Definition: Font.php:262
getName()
Get Name.
Definition: Font.php:231
if($format !==null) $name
Definition: metadata.php:146

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().

+ 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.

154 {
155 return (int)round($pValue * 60000);
156 }

Referenced by PHPExcel_Writer_Excel2007_Drawing\_writeDrawing().

+ 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.

54 {
55 if ($pValue != 0) {
56 return round($pValue / 9525);
57 } else {
58 return 0;
59 }
60 }

Referenced by PHPExcel_Reader_Excel2007\load().

+ 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.

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 }
$i
Definition: disco.tpl.php:19
$y
Definition: example_007.php:83
$x
Definition: example_009.php:98
$r
Definition: example_031.php:79
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file

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

Referenced by PHPExcel_Writer_Excel5\_buildWorkbookEscher().

+ 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.

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']
87 }
88
89 return $colWidth;
90 }

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

Referenced by PHPExcel_Shared_Font\calculateColumnWidth().

+ 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.

44 {
45 return round($pValue * 9525);
46 }

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

+ 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.

130 {
131 return $pValue * 0.67777777;
132 }

Referenced by PHPExcel_Writer_HTML\buildCSS().

+ 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.

140 {
141 if ($pValue != 0) {
142 return (int) ceil($pValue * 1.333333333);
143 } else {
144 return 0;
145 }
146 }

Referenced by PHPExcel_Shared_Excel5\sizeRow().

+ Here is the caller graph for this function:

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