本文整理汇总了PHP中BigTree::imageManipulationMemoryAvailable方法的典型用法代码示例。如果您正苦于以下问题:PHP BigTree::imageManipulationMemoryAvailable方法的具体用法?PHP BigTree::imageManipulationMemoryAvailable怎么用?PHP BigTree::imageManipulationMemoryAvailable使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BigTree
的用法示例。
在下文中一共展示了BigTree::imageManipulationMemoryAvailable方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: array
$thumbnails_to_create = array("bigtree_internal_list" => array("width" => 100, "height" => 100, "prefix" => "bigtree_list_thumb_"), "bigtree_internal_detail" => array("width" => 190, "height" => 145, "prefix" => "bigtree_detail_thumb_"));
$more_thumb_types = $cms->getSetting("bigtree-file-manager-thumbnail-sizes");
if (is_array($more_thumb_types)) {
foreach ($more_thumb_types as $thumb) {
$thumbnails_to_create[$thumb["title"]] = $thumb;
}
}
// Do lots of image awesomesauce.
$itype_exts = array(IMAGETYPE_PNG => ".png", IMAGETYPE_JPEG => ".jpg", IMAGETYPE_GIF => ".gif");
$first_copy = $temp_name;
list($iwidth, $iheight, $itype, $iattr) = getimagesize($first_copy);
foreach ($thumbnails_to_create as $thumb) {
// We don't want to add multiple errors and we also don't want to waste effort getting thumbnail sizes if we already failed.
if (!$error) {
$sizes = BigTree::getThumbnailSizes($first_copy, $thumb["width"], $thumb["height"]);
if (!BigTree::imageManipulationMemoryAvailable($first_copy, $sizes[3], $sizes[4], $iwidth, $iheight)) {
$error = "Image uploaded is too large for the server to manipulate. Please upload a smaller version of this image.";
unlink($first_copy);
}
}
}
if (!$error) {
// Now let's make the thumbnails we need for the image manager
$thumbs = array();
$pinfo = BigTree::pathInfo($file_name);
// Create a bunch of thumbnails
foreach ($thumbnails_to_create as $key => $thumb) {
if ($iwidth > $thumb["width"] || $iheight > $thumb["height"]) {
$temp_thumb = SITE_ROOT . "files/" . uniqid("temp-") . $itype_exts[$itype];
BigTree::createThumbnail($first_copy, $temp_thumb, $thumb["width"], $thumb["height"]);
if ($key == "bigtree_internal_list") {
示例2: processImageUpload
static function processImageUpload($field)
{
global $bigtree;
$failed = false;
$name = $field["file_input"]["name"];
$temp_name = $field["file_input"]["tmp_name"];
$error = $field["file_input"]["error"];
// If a file upload error occurred, return the old image and set errors
if ($error == 1 || $error == 2) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "The file you uploaded ({$name}) was too large — <strong>Max file size: " . ini_get("upload_max_filesize") . "</strong>");
return false;
} elseif ($error == 3) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "The file upload failed ({$name}).");
return false;
}
// We're going to tell BigTreeStorage to handle forcing images into JPEGs instead of writing the code 20x
$storage = new BigTreeStorage();
$storage->AutoJPEG = $bigtree["config"]["image_force_jpeg"];
// Let's check the minimum requirements for the image first before we store it anywhere.
$image_info = @getimagesize($temp_name);
$iwidth = $image_info[0];
$iheight = $image_info[1];
$itype = $image_info[2];
$channels = $image_info["channels"];
// See if we're using image presets
if ($field["options"]["preset"]) {
$media_settings = BigTreeCMS::getSetting("bigtree-internal-media-settings");
$preset = $media_settings["presets"][$field["options"]["preset"]];
// If the preset still exists, copy its properties over to our options
if ($preset) {
foreach ($preset as $key => $val) {
$field["options"][$key] = $val;
}
}
}
// If the minimum height or width is not meant, do NOT let the image through. Erase the change or update from the database.
if (isset($field["options"]["min_height"]) && $iheight < $field["options"]["min_height"] || isset($field["options"]["min_width"]) && $iwidth < $field["options"]["min_width"]) {
$error = "Image uploaded (" . htmlspecialchars($name) . ") did not meet the minimum size of ";
if ($field["options"]["min_height"] && $field["options"]["min_width"]) {
$error .= $field["options"]["min_width"] . "x" . $field["options"]["min_height"] . " pixels.";
} elseif ($field["options"]["min_height"]) {
$error .= $field["options"]["min_height"] . " pixels tall.";
} elseif ($field["options"]["min_width"]) {
$error .= $field["options"]["min_width"] . " pixels wide.";
}
$bigtree["errors"][] = array("field" => $field["title"], "error" => $error);
$failed = true;
}
// If it's not a valid image, throw it out!
if ($itype != IMAGETYPE_GIF && $itype != IMAGETYPE_JPEG && $itype != IMAGETYPE_PNG) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "An invalid file was uploaded. Valid file types: JPG, GIF, PNG.");
$failed = true;
}
// See if it's CMYK
if ($channels == 4) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "A CMYK encoded file was uploaded. Please upload an RBG image.");
$failed = true;
}
// See if we have enough memory for all our crops and thumbnails
if (!$failed && (is_array($field["options"]["crops"]) && count($field["options"]["crops"]) || is_array($field["options"]["thumbs"]) && count($field["options"]["thumbs"]))) {
if (is_array($field["options"]["crops"])) {
foreach ($field["options"]["crops"] as $crop) {
if (!$failed && is_array($crop) && array_filter($crop)) {
if ($field["options"]["retina"]) {
$crop["width"] *= 2;
$crop["height"] *= 2;
}
// We don't want to add multiple errors so we check if we've already failed
if (!BigTree::imageManipulationMemoryAvailable($temp_name, $crop["width"], $crop["height"], $iwidth, $iheight)) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "Image uploaded is too large for the server to manipulate. Please upload a smaller version of this image.");
$failed = true;
}
}
}
}
if (is_array($field["options"]["thumbs"])) {
foreach ($field["options"]["thumbs"] as $thumb) {
// We don't want to add multiple errors and we also don't want to waste effort getting thumbnail sizes if we already failed.
if (!$failed && is_array($thumb) && array_filter($thumb)) {
if ($field["options"]["retina"]) {
$thumb["width"] *= 2;
$thumb["height"] *= 2;
}
$sizes = BigTree::getThumbnailSizes($temp_name, $thumb["width"], $thumb["height"]);
if (!BigTree::imageManipulationMemoryAvailable($temp_name, $sizes[3], $sizes[4], $iwidth, $iheight)) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "Image uploaded is too large for the server to manipulate. Please upload a smaller version of this image.");
$failed = true;
}
}
}
}
if (is_array($field["options"]["center_crops"])) {
foreach ($field["options"]["center_crops"] as $crop) {
// We don't want to add multiple errors and we also don't want to waste effort getting thumbnail sizes if we already failed.
if (!$failed && is_array($crop) && array_filter($crop)) {
list($w, $h) = getimagesize($temp_name);
if (!BigTree::imageManipulationMemoryAvailable($temp_name, $w, $h, $crop["width"], $crop["height"])) {
$bigtree["errors"][] = array("field" => $field["title"], "error" => "Image uploaded is too large for the server to manipulate. Please upload a smaller version of this image.");
$failed = true;
}
//.........这里部分代码省略.........