本文整理汇总了PHP中JImage::getHeight方法的典型用法代码示例。如果您正苦于以下问题:PHP JImage::getHeight方法的具体用法?PHP JImage::getHeight怎么用?PHP JImage::getHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JImage
的用法示例。
在下文中一共展示了JImage::getHeight方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: renderFeature
public function renderFeature()
{
//Retina Image
if ($this->helix3->getParam('logo_type') == 'image') {
jimport('joomla.image.image');
if ($this->helix3->getParam('logo_image')) {
$path = JPATH_ROOT . '/' . $this->helix3->getParam('logo_image');
} else {
$path = JPATH_ROOT . '/templates/' . $this->helix3->getTemplate() . '/images/presets/' . $this->helix3->Preset() . '/logo.png';
}
if (file_exists($path)) {
$image = new JImage($path);
$width = $image->getWidth();
$height = $image->getHeight();
} else {
$width = '';
$height = '';
}
}
$html = '';
$custom_logo_class = '';
$sitename = JFactory::getApplication()->get('sitename');
if ($this->helix3->getParam('mobile_logo')) {
$custom_logo_class = ' hidden-xs';
}
$html .= '<a class="logo" href="' . JURI::base(true) . '/">';
if ($this->helix3->getParam('logo_type') == 'image') {
if ($this->helix3->getParam('logo_image')) {
$html .= '<div>';
$html .= '<img class="sp-default-logo' . $custom_logo_class . '" src="' . $this->helix3->getParam('logo_image') . '" alt="' . $sitename . '">';
if ($this->helix3->getParam('logo_image_2x')) {
$html .= '<img class="sp-retina-logo' . $custom_logo_class . '" src="' . $this->helix3->getParam('logo_image_2x') . '" alt="' . $sitename . '" width="' . $width . '" height="' . $height . '">';
}
if ($this->helix3->getParam('mobile_logo')) {
$html .= '<img class="sp-default-logo visible-xs" src="' . $this->helix3->getParam('mobile_logo') . '" alt="' . $sitename . '">';
}
$html .= '</div>';
} else {
$html .= '<div>';
$html .= '<img class="sp-default-logo' . $custom_logo_class . '" src="' . $this->helix3->getTemplateUri() . '/images/presets/' . $this->helix3->Preset() . '/logo.png" alt="' . $sitename . '">';
$html .= '<img class="sp-retina-logo' . $custom_logo_class . '" src="' . $this->helix3->getTemplateUri() . '/images/presets/' . $this->helix3->Preset() . '/logo@2x.png" alt="' . $sitename . '" width="' . $width . '" height="' . $height . '">';
if ($this->helix3->getParam('mobile_logo')) {
$html .= '<img class="sp-default-logo visible-xs" src="' . $this->helix3->getParam('mobile_logo') . '" alt="' . $sitename . '">';
}
$html .= '</div>';
}
} else {
if ($this->helix3->getParam('logo_text')) {
$html .= '<div>' . $this->helix3->divtParam('logo_text') . '</div>';
} else {
$html .= '<div>' . $sitename . '</div>';
}
if ($this->helix3->getParam('logo_slogan')) {
$html .= '<p class="logo-slogan">' . $this->helix3->getParam('logo_slogan') . '</p>';
}
}
$html .= '<div class="site-name">' . $sitename . '</div>';
$html .= '</a>';
return $html;
}
示例2: onUserAfterSave
/**
* Save user profile data.
*
* @param array $data Entered user data
* @param boolean $isNew True if this is a new user
* @param boolean $result True if saving the user worked
* @param string $error Error message
*
* @return boolean
*/
public function onUserAfterSave($data, $isNew, $result, $error)
{
// Only run in front-end.
if (!JFactory::getApplication()->isSite()) {
return true;
}
$userId = JArrayHelper::getValue($data, 'id', 0, 'int');
$folder = $this->params->get('folder', '');
$avatarFolder = JPATH_ROOT . '/' . $folder;
// If the avatar folder doesn't exist, we don't do anything.
if (!JFolder::exists($avatarFolder)) {
return false;
}
$jinput = JFactory::getApplication()->input;
$delete = $jinput->get('delete-avatar', '', 'word');
if ($delete == 'yes') {
$this->deleteAvatar($userId);
return true;
}
if ($result && $userId > 0) {
$files = $jinput->files->get('jform', array(), 'array');
if (!isset($files['cmavatar']['cmavatar'])) {
return false;
}
$file = $files['cmavatar']['cmavatar'];
if (empty($file['name'])) {
return true;
}
$fileTypes = explode('.', $file['name']);
if (count($fileTypes) < 2) {
// There seems to be no extension.
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_FILE_TYPE'));
return false;
}
array_shift($fileTypes);
// Check if the file has an executable extension.
$executable = array('php', 'js', 'exe', 'phtml', 'java', 'perl', 'py', 'asp', 'dll', 'go', 'ade', 'adp', 'bat', 'chm', 'cmd', 'com', 'cpl', 'hta', 'ins', 'isp', 'jse', 'lib', 'mde', 'msc', 'msp', 'mst', 'pif', 'scr', 'sct', 'shb', 'sys', 'vb', 'vbe', 'vbs', 'vxd', 'wsc', 'wsf', 'wsh');
$check = array_intersect($fileTypes, $executable);
if (!empty($check)) {
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_FILE_TYPE'));
return false;
}
$fileType = array_pop($fileTypes);
$allowable = array_map('trim', explode(',', $this->params->get('allowed_extensions')));
if ($fileType == '' || $fileType == false || !in_array($fileType, $allowable)) {
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_FILE_TYPE'));
return false;
}
$uploadMaxSize = $this->params->get('max_size', 0) * 1024 * 1024;
$uploadMaxFileSize = $this->toBytes(ini_get('upload_max_filesize'));
if ($file['error'] == 1 || $uploadMaxSize > 0 && $file['size'] > $uploadMaxSize || $uploadMaxFileSize > 0 && $file['size'] > $uploadMaxFileSize) {
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_FILE_TOO_LARGE'));
return false;
}
// Make the file name unique.
$md5String = $userId . $file['name'] . JFactory::getDate();
$avatarFileName = JFile::makeSafe(md5($md5String));
if (empty($avatarFileName)) {
// No file name after the name was cleaned by JFile::makeSafe.
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_NO_FILENAME'));
return false;
}
$avatarPath = JPath::clean($avatarFolder . '/' . $avatarFileName . '.' . $this->extension);
if (JFile::exists($avatarPath)) {
// A file with this name already exists. It is almost impossible.
throw new RuntimeException(JText::_('PLG_USER_CMAVATAR_ERROR_FILE_EXISTS'));
return false;
}
// Start resizing the file.
$avatar = new JImage($file['tmp_name']);
$originalWidth = $avatar->getWidth();
$originalHeight = $avatar->getHeight();
$ratio = $originalWidth / $originalHeight;
$maxWidth = (int) $this->params->get('width', 100);
$maxHeight = (int) $this->params->get('height', 100);
// Invalid value in the plugin configuration. Set avatar width to 100.
if ($maxWidth <= 0) {
$maxWidth = 100;
}
if ($maxHeight <= 0) {
$maxHeight = 100;
}
if ($originalWidth > $maxWidth) {
$ratio = $originalWidth / $originalHeight;
$newWidth = $maxWidth;
$newHeight = $newWidth / $ratio;
if ($newHeight > $maxHeight) {
$ratio = $newWidth / $newHeight;
$newHeight = $maxHeight;
$newWidth = $newHeight * $ratio;
//.........这里部分代码省略.........
示例3: getImage
/**
* Get an image address, height and width.
*
* @return array an associative array containing image address, height and width.
*
* @since 3.2
*/
public function getImage()
{
if ($template = $this->getTemplate()) {
$app = JFactory::getApplication();
$client = JApplicationHelper::getClientInfo($template->client_id);
$fileName = base64_decode($app->input->get('file'));
$path = JPath::clean($client->path . '/templates/' . $template->element . '/');
if (stristr($client->path, 'administrator') == false) {
$folder = '/templates/';
} else {
$folder = '/administrator/templates/';
}
$uri = JUri::root(true) . $folder . $template->element;
if (file_exists(JPath::clean($path . $fileName))) {
$JImage = new JImage(JPath::clean($path . $fileName));
$image['address'] = $uri . $fileName;
$image['path'] = $fileName;
$image['height'] = $JImage->getHeight();
$image['width'] = $JImage->getWidth();
} else {
$app->enqueueMessage(JText::_('COM_TEMPLATES_ERROR_IMAGE_FILE_NOT_FOUND'), 'error');
return false;
}
return $image;
}
}
示例4: onUserAfterSave
function onUserAfterSave($data, $isNew, $result, $error)
{
$userId = JArrayHelper::getValue($data, 'id', 0, 'int');
$files = JRequest::getVar('jform', null, 'files');
$post = JRequest::getVar('jform', null);
/*var_dump($_GET["task"]);
var_dump($_POST["task"]);
die;*/
if ($_GET["task"] != "registration.register" && $_POST["task"] != "register") {
$savedNewProfilePicture = false;
// Save original picture, resized pictures and save them
if ($files['error']['profilepicture']['file'] == 0) {
$profilepicture = new JImage($files['tmp_name']['profilepicture']['file']);
$sourceWidth = $profilepicture->getWidth();
$sourceHeight = $profilepicture->getHeight();
if ($sourceWidth < PROFILEPICTURE_SIZE_200 || $sourceHeight < PROFILEPICTURE_SIZE_200) {
throw new Exception(JText::_('PLG_USER_PROFILEPICTURE_ERROR_TOO_SMALL'));
}
$pp_filename = sha1($userId . uniqid()) . '.' . plgUserProfilePicture::FILE_EXTENSION;
foreach ($this->sizes as $size) {
if ($size == PROFILEPICTURE_SIZE_ORIGINAL) {
$profilepicture->toFile(PROFILEPICTURE_PATH_ORIGINAL . $pp_filename);
$savedNewProfilePicture = true;
} else {
$ratio = max($sourceWidth, $sourceHeight) / $size;
$ratio = max($ratio, 1.0);
$resizedWidth = (int) ($sourceWidth / $ratio);
$resizedHeight = (int) ($sourceHeight / $ratio);
$left = 0;
$top = 0;
if ($this->square && $sourceWidth > $size && $sourceHeight > $size) {
if ($sourceWidth > $sourceHeight) {
$left = (int) ($sourceWidth - $sourceHeight) / 2;
$top = 0;
$croppedWidth = $sourceHeight;
$croppedHeight = $sourceHeight;
$resizedHeight = $resizedWidth;
} elseif ($sourceHeight > $sourceWidth) {
$left = 0;
$top = (int) (($sourceHeight - $sourceWidth) / 2);
$croppedWidth = $sourceWidth;
$croppedHeight = $sourceWidth;
$resizedWidth = $resizedHeight;
}
$cropped = $profilepicture->crop($croppedWidth, $croppedHeight, $left, $top, true);
$resized = $cropped->resize($resizedWidth, $resizedHeight, true, JImage::SCALE_OUTSIDE);
$resized->toFile(constant('PROFILEPICTURE_PATH_' . $size) . $pp_filename);
$savedNewProfilePicture = true;
} else {
$resized = $profilepicture->resize($size, $size, true, JImage::SCALE_INSIDE);
$resized->toFile(constant('PROFILEPICTURE_PATH_' . $size) . $pp_filename);
$savedNewProfilePicture = true;
}
}
}
}
// Remove profile picture if an existing profile picture is
// checked for removal or a new picture has been uploaded
// replacing the existing picture.
if (isset($userId) && (!empty($post['profilepicture']['file']['remove']) || $savedNewProfilePicture)) {
$this->removeProfilePicture($userId);
}
if ($userId && $savedNewProfilePicture) {
try {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = $db->getQuery(true);
$query->insert('#__user_profiles')->columns('user_id, profile_key, profile_value, ordering')->values($userId . ', ' . $db->quote(plgUserProfilePicture::PROFILE_KEY) . ', ' . $db->quote($pp_filename) . ', ' . ' 1');
$db->setQuery($query);
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
} catch (JException $e) {
$this->_subject->setError($e->getMessage());
return false;
}
}
return true;
} else {
return true;
}
}
示例5: testGetHeightWithoutLoadedImage
/**
* Test the JImage::getHeight method without a loaded image.
*
* @return void
*
* @expectedException LogicException
* @since 11.3
*/
public function testGetHeightWithoutLoadedImage()
{
// Create a new JImage object without loading an image.
$image = new JImage();
$image->getHeight();
}
示例6: uploadImages
function uploadImages($file, $currentImage = null)
{
if ($file) {
$maxSize = 2 * 1024 * 1024;
$arr = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
// Create folder
$tzFolder = 'tz_portfolio';
$tzUserFolder = 'users';
$tzFolderPath = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $tzFolder;
$tzUserFolderPath = $tzFolderPath . DIRECTORY_SEPARATOR . $tzUserFolder;
if (!JFolder::exists($tzFolderPath)) {
JFolder::create($tzFolderPath);
if (!JFile::exists($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
if (JFolder::exists($tzFolderPath)) {
if (!JFolder::exists($tzUserFolderPath)) {
JFolder::create($tzUserFolderPath);
if (!JFile::exists($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
}
if (is_array($file)) {
foreach ($file as $key => $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$file[$key] = $val2;
}
}
}
//Upload image
if (in_array($file['type'], $arr)) {
if ($file['size'] <= $maxSize) {
$desFileName = 'user_' . time() . uniqid() . '.' . JFile::getExt($file['name']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFile::exists($file['tmp_name'])) {
if (!JFile::copy($file['tmp_name'], $desPath)) {
JError::raiseNotice(300, JText::_('COM_TZ_PORTFOLIO_CAN_NOT_UPLOAD_FILE'));
}
$image = new JImage();
$image->loadFile($desPath);
$params = JComponentHelper::getParams('com_tz_portfolio');
if ($params->get('tz_user_image_width', 100)) {
$width = $params->get('tz_user_image_width', 100);
}
$height = ceil($image->getHeight() * $width / $image->getWidth());
$image = $image->resize($width, $height);
$type = $this->_getImageType($file['name']);
$image->toFile($desPath, $type);
$this->deleteImages($currentImage);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
} else {
JError::raiseNotice(300, JText::_('COM_TZ_PORTFOLIO_IMAGE_SIZE_TOO_LARGE'));
}
} else {
JError::raiseNotice(300, JText::_('COM_TZ_PORTFOLIO_IMAGE_FILE_NOT_SUPPORTED'));
}
} else {
tzportfolioimport('HTTPFetcher');
tzportfolioimport('readfile');
$image = new Services_Yadis_PlainHTTPFetcher();
$image = $image->get($file);
if (in_array($image->headers['Content-Type'], $arr)) {
if ($image->headers['Content-Length'] > $maxSize) {
$this->deleteImages($currentImage);
$desFileName = 'user_' . time() . uniqid() . '.' . str_replace('image/', '', $image->headers['Content-Type']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFolder::exists($tzFolderPath)) {
if (!JFile::write($desPath, $image->body)) {
$this->setError(JText::_('COM_TZ_PORTFOLIO_CAN_NOT_UPLOAD_FILE'));
return false;
}
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
} else {
JError::raiseNotice(300, JText::_('COM_TZ_PORTFOLIO_IMAGE_SIZE_TOO_LARGE'));
}
} else {
JError::raiseNotice(300, JText::_('COM_TZ_PORTFOLIO_IMAGE_FILE_NOT_SUPPORTED'));
}
}
}
if ($currentImage) {
return $currentImage;
}
return '';
}
示例7: uploadImages
function uploadImages($file)
{
if ($file) {
$maxSize = 2 * 1024 * 1024;
$arr = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
// Create folder
$tzFolder = 'tz_pinboard';
$tzUserFolder = 'users';
$tzFolderPath = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $tzFolder;
$tzUserFolderPath = $tzFolderPath . DIRECTORY_SEPARATOR . $tzUserFolder;
if (!JFolder::exists($tzFolderPath)) {
JFolder::create($tzFolderPath);
if (!JFile::exists($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
if (JFolder::exists($tzFolderPath)) {
if (!JFolder::exists($tzUserFolderPath)) {
JFolder::create($tzUserFolderPath);
if (!JFile::exists($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
}
if (is_array($file)) {
foreach ($file as $key => $val) {
if (is_array($val)) {
foreach ($val as $key2 => $val2) {
$file[$key] = $val2;
}
}
}
//Upload image
if (!in_array($file['type'], $arr)) {
$this->setError(JText::_('Invalid file type'));
return false;
}
if ($file['size'] > $maxSize) {
$this->setError(JText::_('This file size too large'));
return false;
}
$desFileName = 'user_' . time() . uniqid() . '.' . JFile::getExt($file['name']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFile::exists($file['tmp_name'])) {
if (!JFile::copy($file['tmp_name'], $desPath)) {
$this->setError(JText::_('Can not upload file'));
return false;
}
$image = new JImage();
$image->loadFile($desPath);
$params = JComponentHelper::getParams('com_tz_pinboard');
if ($params->get('tz_user_image_width', 100)) {
$width = $params->get('tz_user_image_width', 100);
}
$height = ceil($image->getHeight() * $width / $image->getWidth());
$image = $image->resize($width, $height);
$type = $this->_getImageType($file['name']);
$image->toFile($desPath, $type);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
} else {
require_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'HTTPFetcher.php';
require_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'readfile.php';
$image = new Services_Yadis_PlainHTTPFetcher();
$image = $image->get($file);
if (!in_array($image->headers['Content-Type'], $arr)) {
$this->setError(JText::_('Invalid file'));
return false;
}
if ($image->headers['Content-Length'] > $maxSize) {
$this->setError(JText::_('This file size too large'));
return false;
}
$desFileName = 'user_' . time() . uniqid() . '.' . str_replace('image/', '', $image->headers['Content-Type']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFolder::exists($tzFolderPath)) {
if (!JFile::write($desPath, $image->body)) {
$this->setError(JText::_('Can not upload file'));
return false;
}
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
}
}
return true;
}
示例8: _generatePreview
/**
* Generate the file preview. U
*/
private function _generatePreview()
{
// Create thumbnail (for jpeg) if there is none
$supportedImageMine = array('image/png', 'image/jpeg');
if (in_array($this->mimetype, $supportedImageMine)) {
jimport('joomla.image');
require_once JPATH_ROOT . DS . 'libraries' . DS . 'joomla' . DS . 'image' . DS . 'filters' . DS . 'sharpen.php';
$image = new JImage(JPATH_ROOT . DS . $this->path);
if (!$image->isLoaded()) {
return false;
}
$pathinfo = pathinfo($this->path);
$width = $image->getWidth();
$height = $image->getHeight();
// Generate preview
if ($width > 640) {
$height = 640 / $width * $height;
$width = 640;
}
if ($height > 640) {
$width = 640 / $height * $width;
$height = 640;
}
// Resize for preview
$image = $image->resize($width, $height);
$previewPath = JPATH_ROOT . DS . $pathinfo['dirname'] . DS . $pathinfo['filename'] . '_preview.jpg';
$image->filter('sharpen');
$image->toFile($previewPath, IMAGETYPE_JPEG, array('quality' => 90));
// crop them to predefined aspect ratio if necessary
// and the resize them
if ($width / $height > 1.3) {
$image = $image->crop($height * 1.3, $height, ($width - $height * 1.3) / 2, 0);
$image = $image->resize(StreamTableFile::PHOTO_THUMB_WIDTH, StreamTableFile::PHOTO_THUMB_HEIGHT);
} elseif ($height / $width > 1.3) {
$image = $image->crop($width, $width * 1.3, 0, $height - $width * 1.3);
$image = $image->resize(StreamTableFile::PHOTO_THUMB_HEIGHT, StreamTableFile::PHOTO_THUMB_WIDTH);
} else {
$image = $image->resize(StreamTableFile::PHOTO_THUMB_WIDTH, StreamTableFile::PHOTO_THUMB_WIDTH);
}
$thumbPath = JPATH_ROOT . DS . $pathinfo['dirname'] . DS . $pathinfo['filename'] . '_thumb.jpg';
$image->toFile($thumbPath, IMAGETYPE_JPEG, array('quality' => 100));
if (JFile::exists($thumbPath)) {
$this->setParam('has_preview', true);
$this->setParam('thumb_path', $pathinfo['dirname'] . DS . $pathinfo['filename'] . '_thumb.jpg');
$this->setParam('preview_path', $pathinfo['dirname'] . DS . $pathinfo['filename'] . '_preview.jpg');
$this->setParam('width', $width);
$this->setParam('height', $height);
}
} else {
$this->setParam('has_preview', false);
$this->setParam('thumb_path', '');
$this->setParam('preview_path', '');
$this->setParam('width', '');
$this->setParam('height', '');
}
}
示例9: onUserAfterSave
function onUserAfterSave($data, $isNew, $result, $error)
{
$userId = JArrayHelper::getValue($data, 'id', 0, 'int');
$files = JRequest::getVar('jform', null, 'files');
$post = JRequest::getVar('jform', null);
$savedNewProfileCover = false;
// Save original cover, resized covers and save them
if ($files['error']['profilecover']['file'] == 0 && !empty($files['tmp_name']['profilecover']['file'])) {
// Throw new exception if the uploaded file exceed the maximum allowed file size.
if ($this->doesExceedFileSizeLimit($files['size']['profilecover']['file'])) {
throw new Exception(JText::sprintf('PLG_USER_PROFILECOVER_ERROR_FILE_SIZE_TOO_BIG', $this->maxUploadSizeInBytes() / 1000));
}
$profilecover = new JImage($files['tmp_name']['profilecover']['file']);
$sourceWidth = $profilecover->getWidth();
$sourceHeight = $profilecover->getHeight();
if ($sourceWidth < PROFILECOVER_SIZE_200 || $sourceHeight < PROFILECOVER_SIZE_200) {
throw new Exception(JText::_('PLG_USER_PROFILECOVER_ERROR_TOO_SMALL'));
}
$pp_filename = sha1($userId . uniqid()) . '.' . plgUserProfileCover::FILE_EXTENSION;
foreach ($this->sizes as $size) {
if ($size == PROFILECOVER_SIZE_ORIGINAL) {
$profilecover->toFile(PROFILECOVER_PATH_ORIGINAL . $pp_filename);
$savedNewProfileCover = true;
} else {
$ratio = max($sourceWidth, $sourceHeight) / $size;
$ratio = max($ratio, 1.0);
$resizedWidth = (int) ($sourceWidth / $ratio);
$resizedHeight = (int) ($sourceHeight / $ratio);
$left = 0;
$top = 0;
if ($this->square && $sourceWidth > $size && $sourceHeight > $size) {
if ($sourceWidth > $sourceHeight) {
$left = (int) ($sourceWidth - $sourceHeight) / 2;
$top = 0;
$croppedWidth = $sourceHeight;
$croppedHeight = $sourceHeight;
$resizedHeight = $resizedWidth;
} elseif ($sourceHeight >= $sourceWidth) {
$left = 0;
$top = (int) (($sourceHeight - $sourceWidth) / 2);
$croppedWidth = $sourceWidth;
$croppedHeight = $sourceWidth;
$resizedWidth = $resizedHeight;
}
$cropped = $profilecover->crop($croppedWidth, $croppedHeight, $left, $top, true);
$resized = $cropped->resize($resizedWidth, $resizedHeight, true, JImage::SCALE_OUTSIDE);
$resized->toFile(constant('PROFILECOVER_PATH_' . $size) . $pp_filename);
$savedNewProfileCover = true;
} else {
$resized = $profilecover->resize($size, $size, true, JImage::SCALE_INSIDE);
$resized->toFile(constant('PROFILECOVER_PATH_' . $size) . $pp_filename);
$savedNewProfileCover = true;
}
}
}
}
// Remove profile cover if an existing profile cover is
// checked for removal or a new cover has been uploaded
// replacing the existing cover.
if (isset($userId) && (!empty($post['profilecover']['file']['remove']) || $savedNewProfileCover)) {
$this->removeProfileCover($userId);
}
if ($userId && $savedNewProfileCover) {
try {
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$query = $db->getQuery(true);
$query->insert('#__user_profiles')->columns('user_id, profile_key, profile_value, ordering')->values($userId . ', ' . $db->quote(plgUserProfileCover::PROFILE_KEY) . ', ' . $db->quote($pp_filename) . ', ' . ' 1');
$db->setQuery($query);
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
} catch (JException $e) {
$this->_subject->setError($e->getMessage());
return false;
}
}
return true;
}
示例10: resizeImage
public function resizeImage($src, $gallery = null, $dest = null)
{
if ($src) {
$type = JFile::getExt($src);
$org_file = str_replace('.' . $type, '_o.' . $type, $src);
$params = $this->getState('params');
$sizes = $this->getState('sizeImage');
if ($gallery) {
$sizes = $this->getState('size');
}
if (!JFile::exists($org_file)) {
$this->setError(JText::_('COM_TZ_PORTFOLIO_IMAGE_FILE_DOES_NOT_EXIST'));
return false;
}
$dest_path = $dest;
if ($sizes) {
$image = new JImage($org_file);
$width = $image->getWidth();
$height = $image->getHeight();
// Resize images
foreach ($sizes as $key => $newWidth) {
$newHeight = $height * $newWidth / $width;
$newImage = $image->resize($newWidth, $newHeight);
if (!$dest) {
$dest_path = str_replace('.' . $type, '_' . $key . '.' . $type, $src);
}
if (JFile::exists($dest_path)) {
JFile::delete($dest_path);
}
$newImage->toFile($dest_path, $this->_getImageType($src));
}
return true;
}
return false;
}
return false;
}
示例11: uploadImages
function uploadImages($file, $url = null)
{
if ($file) {
$maxSize = 2 * 1024 * 1024;
$arr = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
// Create folder
$tzFolder = 'tz_portfolio_plus';
$tzUserFolder = 'categories';
$tzFolderPath = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $tzFolder;
$tzUserFolderPath = $tzFolderPath . DIRECTORY_SEPARATOR . $tzUserFolder;
if (!JFolder::exists($tzFolderPath)) {
JFolder::create($tzFolderPath);
if (!JFile::exists($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
if (JFolder::exists($tzFolderPath)) {
if (!JFolder::exists($tzUserFolderPath)) {
JFolder::create($tzUserFolderPath);
if (!JFile::exists($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
}
$params = JComponentHelper::getParams('com_tz_portfolio_plus');
if (!$url) {
$image = new JImage(JPATH_SITE . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $file));
$desFileName = 'categories_' . time() . uniqid() . '.' . JFile::getExt($file);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if ($params->get('tz_catimage_width', 400)) {
$newWidth = $params->get('tz_catimage_width', 400);
}
$type = strtolower(JFile::getExt($file));
$_type = null;
if ($type == 'gif') {
$_type = IMAGETYPE_GIF;
} elseif ($type == 'png') {
$_type = IMAGETYPE_PNG;
}
$height = ceil($image->getHeight() * $newWidth / $image->getWidth());
$image = $image->resize($newWidth, $height);
$image->toFile($desPath, $_type);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
} else {
tzportfolioplusimport('HTTPFetcher');
tzportfolioplusimport('readfile');
$image = new Services_Yadis_PlainHTTPFetcher();
$image = $image->get($file);
if (!in_array($image->headers['Content-Type'], $arr)) {
$this->setError(JText::_('COM_TZ_PORTFOLIO_PLUS_INVALID_FILE'));
return false;
}
if ($image->headers['Content-Length'] > $maxSize) {
$this->setError(JText::_('COM_TZ_PORTFOLIO_PLUS_IMAGE_SIZE_TOO_LARGE'));
return false;
}
$desFileName = 'categories_' . time() . uniqid() . '.' . str_replace('image/', '', $image->headers['Content-Type']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFolder::exists($tzFolderPath)) {
if (!JFile::write($desPath, $image->body)) {
$this->setError(JText::_('COM_TZ_PORTFOLIO_PLUS_CAN_NOT_UPLOADED_FILEs'));
return false;
}
$image = new JImage($desPath);
$newWidth = $params->get('tz_catimage_width', 400);
$newHeight = ceil($image->getHeight() * $newWidth / $image->getWidth());
$newImage = $image->resize((int) $newWidth, $newHeight, false);
$type = strtolower(JFile::getExt($file));
$_type = $type == 'gif' ? IMAGETYPE_GIF : $type == 'png' ? IMAGETYPE_PNG : null;
$newImage->toFile($desPath, $_type);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
}
}
return true;
}
示例12: profileImage
public static function profileImage($profileID, $variable = 'profile')
{
$files = JRequest::getVar('jform', null, 'files');
$jform = JRequest::getVar('jform', null, 'ARRAY');
// Check that user want upload image or delete image
$image_delete = empty($jform[$variable]['image_delete']) ? false : true;
$image_error = empty($variable) ? $files['error']['image'] : $files['error'][$variable]['image'];
$image_tmp_name = empty($variable) ? $files['tmp_name']['image'] : $files['tmp_name'][$variable]['image'];
// Minimum image size
$imageSize = 200;
$profileImage = -1;
// Upload Profile Image
if ($image_error == 0 && !$image_delete) {
// Resize Image
$image = new JImage($image_tmp_name);
$sourceWidth = $image->getWidth();
$sourceHeight = $image->getHeight();
if ($sourceWidth < $imageSize || $sourceHeight < $imageSize) {
return JText::sprintf('COM_SIBDIET_ERROR_PROFILE_IMAGE_TOO_SMALL', $imageSize);
}
// Set image name to user profile ID
$image_filename = $profileID . '.jpg';
$ratio = max($sourceWidth, $sourceHeight) / $imageSize;
$ratio = max($ratio, 1.0);
$resizedWidth = (int) ($sourceWidth / $ratio);
$resizedHeight = (int) ($sourceHeight / $ratio);
$resized = $image->resize($resizedWidth, $resizedHeight, true, JImage::SCALE_INSIDE);
$resized->toFile(JPATH_ROOT . '/images/sibdiet/profiles/' . $image_filename, 'IMAGETYPE_JPEG');
} elseif ($image_delete) {
$image_path = JPATH_ROOT . '/images/sibdiet/profiles/' . $profileID . '.jpg';
jimport('joomla.filesystem.file');
if (JFile::exists($image_path)) {
JFile::delete($image_path);
}
}
return true;
}
示例13: uploadLocal
function uploadLocal()
{
$img = $_FILES['upload_pinl'];
$arr = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
$maxSize = 10 * 1024 * 1024;
$erro = array();
$size_img = $this->getState('size_img');
$tzFolderPath = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . 'tz_pinboard' . DIRECTORY_SEPARATOR . 'article' . DIRECTORY_SEPARATOR . 'cache';
if (!JFolder::exists($tzFolderPath)) {
JFolder::create($tzFolderPath);
}
$check_file_type = in_array(strtolower($img['type']), $arr);
if ($check_file_type == false) {
$erro[] = "incorrect file type";
}
if ($img['size'] > $maxSize) {
$erro[] = "file too large";
}
$_erro = count($erro);
if ($_erro == '0') {
$FileName_img = 'Pin_' . time() . uniqid() . '.' . str_replace('image/', '', $img['type']);
$_FILES['upload_pinl']['name'] = $FileName_img;
$type = $this->_getImageType($FileName_img);
if ($type == 1) {
$uploadfile = $tzFolderPath . '/' . basename($_FILES['upload_pinl']['name']);
move_uploaded_file($_FILES['upload_pinl']['tmp_name'], $uploadfile);
$desttamp = $tzFolderPath . DIRECTORY_SEPARATOR . $FileName_img;
preg_match('/media.*?$/', $desttamp, $path_img);
return $path_img1 = str_replace('\\', '/', $path_img[0]);
} else {
$desttamp = $tzFolderPath . DIRECTORY_SEPARATOR . $FileName_img;
$obj = new JImage($img['tmp_name']);
$width = $obj->getWidth();
$height = $obj->getHeight();
$arr_upload = array();
foreach ($size_img as $key => $newWidth) {
$destPath = $tzFolderPath . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $FileName_img);
$destPath = str_replace('.' . JFile::getExt($destPath), '_' . $key . '.' . JFile::getExt($destPath), $destPath);
$newHeight = $height * (int) $newWidth / $width;
$newImage = $obj->resize($newWidth, $newHeight, true);
$arr_upload[] = $newImage->toFile($destPath, $type);
}
if ($arr_upload[0] == true) {
preg_match('/media.*?$/', $desttamp, $path_img);
return $path_img1 = str_replace('\\', '/', $path_img[0]);
} else {
return false;
}
}
} else {
return false;
}
}
示例14: uploadImages
function uploadImages($file, $url = null)
{
if ($file) {
$maxSize = 2 * 1024 * 1024;
$arr = array('image/jpeg', 'image/jpg', 'image/bmp', 'image/gif', 'image/png', 'image/ico');
// Create folder
$tzFolder = 'tz_pinboard';
$tzUserFolder = 'categories';
$tzFolderPath = JPATH_ROOT . DIRECTORY_SEPARATOR . 'media' . DIRECTORY_SEPARATOR . $tzFolder;
$tzUserFolderPath = $tzFolderPath . DIRECTORY_SEPARATOR . $tzUserFolder;
if (!JFolder::exists($tzFolderPath)) {
JFolder::create($tzFolderPath);
if (!JFile::exists($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
if (JFolder::exists($tzFolderPath)) {
if (!JFolder::exists($tzUserFolderPath)) {
JFolder::create($tzUserFolderPath);
if (!JFile::exists($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html')) {
JFile::write($tzUserFolderPath . DIRECTORY_SEPARATOR . 'index.html', htmlspecialchars_decode('<!DOCTYPE html><title></title>'));
}
}
}
$params = JComponentHelper::getParams('com_tz_pinboard');
if (!$url) {
$image = new JImage(JPATH_SITE . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $file));
$desFileName = 'categories_' . time() . uniqid() . '.' . JFile::getExt($file);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if ($params->get('tz_catimage_width', 400)) {
$newWidth = $params->get('tz_catimage_width', 400);
}
$height = ceil($image->getHeight() * $newWidth / $image->getWidth());
$image = $image->resize($newWidth, $height);
$image->toFile($desPath);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
} else {
require_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'HTTPFetcher.php';
require_once JPATH_COMPONENT . DIRECTORY_SEPARATOR . 'helpers' . DIRECTORY_SEPARATOR . 'readfile.php';
$image = new Services_Yadis_PlainHTTPFetcher();
$image = $image->get($file);
if (!in_array($image->headers['Content-Type'], $arr)) {
$this->setError(JText::_('Invalid file'));
return false;
}
if ($image->headers['Content-Length'] > $maxSize) {
$this->setError(JText::_('This file size too large'));
return false;
}
$desFileName = 'categories_' . time() . uniqid() . '.' . str_replace('image/', '', $image->headers['Content-Type']);
$desPath = $tzUserFolderPath . DIRECTORY_SEPARATOR . $desFileName;
if (JFolder::exists($tzFolderPath)) {
if (!JFile::write($desPath, $image->body)) {
$this->setError(JText::_('Can not upload file'));
return false;
}
$image = new JImage($desPath);
$newWidth = $params->get('tz_catimage_width', 400);
$newHeight = ceil($image->getHeight() * $newWidth / $image->getWidth());
$newImage = $image->resize((int) $newWidth, $newHeight, false);
$newImage->toFile($desPath);
return 'media/' . $tzFolder . '/' . $tzUserFolder . '/' . $desFileName;
}
}
}
return true;
}
示例15: createImage
/**
* Create a cropped and resized image from the uploaded original
*
* @return bool
*
* @since 1.0.0.3
*/
protected function createImage($src, $dest, $width, $height)
{
$original = new JImage($src);
$org_width = $original->getWidth();
$org_height = $original->getHeight();
if ($org_width / $width < $org_height / $height) {
$original->resize($width, 0, false);
} else {
$original->resize(0, $height, false);
}
$thumb = $original->crop($width, $height, null, null, true);
$filename = pathinfo($original->getPath(), PATHINFO_FILENAME);
$extension = pathinfo($original->getPath(), PATHINFO_EXTENSION);
if (!$thumb->toFile(JPATH_ROOT . $dest . $filename . "." . $extension)) {
return false;
}
$original->destroy();
$thumb->destroy();
return true;
}