ILIAS  eassessment Revision 61809
 All Data Structures Namespaces Files Functions Variables Groups Pages
PHPExcel_Shared_Drawing Class Reference
+ Collaboration diagram for PHPExcel_Shared_Drawing:

Static Public Member Functions

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

Detailed Description

Definition at line 36 of file Drawing.php.

Member Function Documentation

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

{
if ($pValue != 0) {
return round($pValue / 60000);
} else {
return 0;
}
}

+ Here is the caller graph for this function:

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, PHPExcel_Style_Font\getName(), and PHPExcel_Style_Font\getSize().

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

{
// Font name and size
$name = $pDefaultFont->getName();
$size = $pDefaultFont->getSize();
// Exact width can be determined
$colWidth = $pValue
} else {
// We don't have data for this particular font and size, use approximation by
// extrapolating from Calibri 11
$colWidth = $pValue * $size
/ PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['width'] / 11;
}
// Round pixels to closest integer
$colWidth = (int) round($colWidth);
return $colWidth;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

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

+ Here is the caller graph for this function:

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

{
if ($pValue != 0) {
return round($pValue / 9525);
} else {
return 0;
}
}

+ Here is the caller graph for this function:

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, $x, and $y.

Referenced by PHPExcel_Writer_Excel5\_buildWorkbookEscher().

{
// Load the image into a string
$file = fopen($p_sFile,"rb");
$read = fread($file,10);
while(!feof($file)&&($read<>""))
$read .= fread($file,1024);
$temp = unpack("H*",$read);
$hex = $temp[1];
$header = substr($hex,0,108);
// Process the header
// Structure: http://www.fastgraph.com/help/bmp_header_format.html
if (substr($header,0,4)=="424d")
{
// Cut it in parts of 2 bytes
$header_parts = str_split($header,2);
// Get the width 4 bytes
$width = hexdec($header_parts[19].$header_parts[18]);
// Get the height 4 bytes
$height = hexdec($header_parts[23].$header_parts[22]);
// Unset the header params
unset($header_parts);
}
// Define starting X and Y
$x = 0;
$y = 1;
// Create newimage
$image = imagecreatetruecolor($width,$height);
// Grab the body from the image
$body = substr($hex,108);
// Calculate if padding at the end-line is needed
// Divided by two to keep overview.
// 1 byte = 2 HEX-chars
$body_size = (strlen($body)/2);
$header_size = ($width*$height);
// Use end-line padding? Only when needed
$usePadding = ($body_size>($header_size*3)+4);
// Using a for-loop with index-calculation instaid of str_split to avoid large memory consumption
// Calculate the next DWORD-position in the body
for ($i=0;$i<$body_size;$i+=3)
{
// Calculate line-ending and padding
if ($x>=$width)
{
// If padding needed, ignore image-padding
// Shift i to the ending of the current 32-bit-block
if ($usePadding)
$i += $width%4;
// Reset horizontal position
$x = 0;
// Raise the height-position (bottom-up)
$y++;
// Reached the image-height? Break the for-loop
if ($y>$height)
break;
}
// Calculation of the RGB-pixel (defined as BGR in image-data)
// Define $i_pos as absolute position in the body
$i_pos = $i*2;
$r = hexdec($body[$i_pos+4].$body[$i_pos+5]);
$g = hexdec($body[$i_pos+2].$body[$i_pos+3]);
$b = hexdec($body[$i_pos].$body[$i_pos+1]);
// Calculate and draw the pixel
$color = imagecolorallocate($image,$r,$g,$b);
imagesetpixel($image,$x,$height-$y,$color);
// Raise the horizontal position
$x++;
}
// Unset the body / free the memory
unset($body);
// Return image-object
return $image;
}

+ Here is the caller graph for this function:

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, PHPExcel_Style_Font\getName(), and PHPExcel_Style_Font\getSize().

Referenced by PHPExcel_Shared_Font\calculateColumnWidth().

{
// Font name and size
$name = $pDefaultFont->getName();
$size = $pDefaultFont->getSize();
// Exact width can be determined
$colWidth = $pValue
} else {
// We don't have data for this particular font and size, use approximation by
// extrapolating from Calibri 11
$colWidth = $pValue * 11
/ PHPExcel_Shared_Font::$defaultColumnWidths['Calibri'][11]['px'] / $size;
}
return $colWidth;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

{
return round($pValue * 9525);
}

+ Here is the caller graph for this function:

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

{
return $pValue * 0.67777777;
}

+ Here is the caller graph for this function:

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

{
if ($pValue != 0) {
return (int) ceil($pValue * 1.333333333);
} else {
return 0;
}
}

+ Here is the caller graph for this function:


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