本文整理匯總了PHP中ImageManager::_getImageSize方法的典型用法代碼示例。如果您正苦於以下問題:PHP ImageManager::_getImageSize方法的具體用法?PHP ImageManager::_getImageSize怎麽用?PHP ImageManager::_getImageSize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類ImageManager
的用法示例。
在下文中一共展示了ImageManager::_getImageSize方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: makeThumbnailsById
/**
* Create thumbnails and update the corresponding Product records
*
* Scans the Products with the given IDs. If a non-empty picture string
* with a reasonable extension is encountered, determines whether
* the corresponding thumbnail is available and up to date or not.
* If not, tries to load the file and to create a thumbnail.
* If it succeeds, it also updates the picture field with the base64
* encoded entry containing the image width and height.
* Note that only single file names are supported!
* Also note that this method returns a string with information about
* problems that were encountered.
* It skips records which contain no or invalid image
* names, thumbnails that cannot be created, and records which refuse
* to be updated!
* The reasoning behind this is that this method is currently only called
* from within some {@link _import()} methods. The focus lies on importing
* Products; whether or not thumbnails can be created is secondary, as the
* process can be repeated if there is a problem.
* @param integer $arrId The array of Product IDs
* @return boolean True on success, false on any error
* @global ADONewConnection $objDatabase Database connection object
* @global array
* @static
* @author Reto Kohli <reto.kohli@comvation.com>
*/
static function makeThumbnailsById($arrId)
{
global $_ARRAYLANG;
if (!is_array($arrId)) {
return false;
}
$error = false;
$objImageManager = new \ImageManager();
foreach ($arrId as $product_id) {
if ($product_id <= 0) {
\Message::error(sprintf($_ARRAYLANG['TXT_SHOP_INVALID_PRODUCT_ID'], $product_id));
$error = true;
continue;
}
$objProduct = Product::getById($product_id);
if (!$objProduct) {
\Message::error(sprintf($_ARRAYLANG['TXT_SHOP_INVALID_PRODUCT_ID'], $product_id));
$error = true;
continue;
}
$imageName = $objProduct->pictures();
$imagePath = \Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteImagesShopPath() . '/' . $imageName;
// only try to create thumbs from entries that contain a
// plain text file name (i.e. from an import)
if ($imageName == '' || !preg_match('/\\.(?:jpg|jpeg|gif|png)$/i', $imageName)) {
\Message::error(sprintf($_ARRAYLANG['TXT_SHOP_UNSUPPORTED_IMAGE_FORMAT'], $product_id, $imageName));
$error = true;
continue;
}
// if the picture is missing, skip it.
if (!file_exists($imagePath)) {
\Message::error(sprintf($_ARRAYLANG['TXT_SHOP_MISSING_PRODUCT_IMAGE'], $product_id, $imageName));
$error = true;
continue;
}
$thumbResult = true;
$width = 0;
$height = 0;
// If the thumbnail exists and is newer than the picture,
// don't create it again.
$thumb_name = \ImageManager::getThumbnailFilename($imagePath);
if (file_exists($thumb_name) && filemtime($thumb_name) > filemtime($imagePath)) {
//$this->addMessage("Hinweis: Thumbnail fuer Produkt ID '$product_id' existiert bereits");
// Need the original size to update the record, though
list($width, $height) = $objImageManager->_getImageSize($imagePath);
} else {
// Create thumbnail, get the original size.
// Deleting the old thumb beforehand is integrated into
// _createThumbWhq().
$thumbResult = $objImageManager->_createThumbWhq(\Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteImagesShopPath() . '/', \Cx\Core\Core\Controller\Cx::instanciate()->getWebsiteImagesShopWebPath() . '/', $imageName, \Cx\Core\Setting\Controller\Setting::getValue('thumbnail_max_width', 'Shop'), \Cx\Core\Setting\Controller\Setting::getValue('thumbnail_max_height', 'Shop'), \Cx\Core\Setting\Controller\Setting::getValue('thumbnail_quality', 'Shop'));
$width = $objImageManager->orgImageWidth;
$height = $objImageManager->orgImageHeight;
}
// The database needs to be updated, however, as all Products
// have been imported.
if ($thumbResult) {
$shopPicture = base64_encode($imageName) . '?' . base64_encode($width) . '?' . base64_encode($height) . ':??:??';
$objProduct->pictures($shopPicture);
$objProduct->store();
} else {
\Message::error(sprintf($_ARRAYLANG['TXT_SHOP_ERROR_CREATING_PRODUCT_THUMBNAIL'], $product_id, $imageName));
$error = true;
}
}
return $error;
}
示例2: rotatePicture
/**
* Rotates an image clockwise by 90�
*
* @global ADONewConnection
* @global array
* @global array
*/
function rotatePicture($intImageId)
{
global $objDatabase, $_ARRAYLANG, $_CONFIG;
if (!function_exists('imagerotate')) {
$this->strErrMessage = $_ARRAYLANG['TXT_GALLERY_GD_LIB_NOT_INSTALLED'];
return false;
}
$objResult = $objDatabase->Execute('SELECT path,
quality,
size_type,
size_proz,
size_abs_h,
size_abs_w
FROM ' . DBPREFIX . 'module_gallery_pictures
WHERE id=' . $intImageId);
$strImagename = $objResult->fields['path'];
$strOrgPath = $this->strImagePath;
$strWebpath = $this->strImageWebPath;
$strThumbPath = $this->strThumbnailPath;
$strThumbWebpath = $this->strThumbnailWebPath;
$objImage = new \ImageManager();
$objImage->loadImage($strOrgPath . $strImagename);
//Rotate the clockwise
if ($objImage->rotateImage(270)) {
//To save the Rotated image
if ($objImage->saveNewImage($strOrgPath . $strImagename, true)) {
\Cx\Lib\FileSystem\FileSystem::delete_file($strThumbPath . $strImagename);
}
$imageSize = $objImage->_getImageSize($strOrgPath . $strImagename);
$intOldWidth = $imageSize[0];
$intOldHeight = $imageSize[1];
if ($objResult->fields['size_type'] == 'abs') {
$intNewWidth = intval($this->arrSettings['standard_width_abs']);
$intNewHeight = intval($this->arrSettings['standard_height_abs']);
if ($intNewWidth == 0) {
// exception if width and height or 0!
if ($intNewHeight == 0) {
$intNewHeight = 100;
}
$intNewWidth = round($intOldWidth * $intNewHeight / $intOldHeight, 0);
} else {
if ($intNewHeight == 0) {
$intNewHeight = round($intOldHeight * $intNewWidth / $intOldWidth, 0);
}
}
} else {
$intNewWidth = round($objResult->fields['size_proz'] / 100 * $intOldWidth, 0);
$intNewHeight = round($objResult->fields['size_proz'] / 100 * $intOldHeight, 0);
}
//Resize the Rotated image
if ($objImage->resizeImageSave($strOrgPath, $strWebpath, $strImagename, $intNewWidth, $intNewHeight, $objResult->fields['quality'], $strThumbPath, $strThumbWebpath, $strImagename)) {
if ($objResult->fields['size_type'] == 'abs') {
$objDatabase->Execute(' UPDATE ' . DBPREFIX . 'module_gallery_pictures
SET size_abs_h=' . $intNewHeight . ',
size_abs_w=' . $intNewWidth . '
WHERE id=' . $intImageId);
}
}
}
}