/** * Search the media gallery for suitable images. * * This is the order: * Check if current post has attached images * Check the default language if has attached images * Check if frontpage has attached images * Check if frontpage has attached images in default language * Build a placeholder */ public function get_images() { $args = array(); if ($this->image_number) { $args['numberposts'] = $this->image_number; } $this->add_images(self::get_images_from_post($args)); // = self::get_images_from_post(); if (!$this->has_images()) { $this->add_images(self::get_images_from_main_language($args)); } if (!$this->has_images() && HotelManager::$enabled) { $this->add_images(self::get_images_from_closest_hotel($args)); } if (!$this->has_images() && HotelManager::$enabled) { $this->add_images(self::get_images_from_closest_hotel_in_default_language($args)); } if (!$this->has_images()) { $this->add_images(self::get_images_from_frontpage($args)); } if (!$this->has_images()) { $this->add_images(self::get_images_from_homepage_in_default_language($args)); } if (!$this->has_images()) { $dimensions = ImageGenerator::get_dimensions($this->media_dimension); if ($dimensions['width'] == 'unknown') { return $this; } $image = new ImageGenerator(); $image->set('width', $dimensions['width'])->set('height', $dimensions['height'])->set('bg_color', 'cccccc')->set('text_color', '222222'); $this->add_image(array('src' => $image->get_image_src(), 'alt' => $image->get_image_alt(), 'width' => $image->get_image_width(), 'height' => $image->get_image_height())); } return $this; }
<?php include 'php/autoload.php'; if (isset($_GET['p']) && isset($_SESSION['activeImg'])) { $generator = new ImageGenerator('img/designer/', ''); $template = $_SESSION['activeImg']; $overlay = $_SESSION['activeOverlay'] === '' ? null : $_SESSION['activeOverlay']; $pos = $_GET['p']; try { $img = $generator->generate($pos, $template, $overlay); $_SESSION['lastPos'] = $_GET['p']; } catch (Exception $e) { $img = imagecreatefrompng('img/error.png'); } } elseif (isset($_GET['t'])) { $generator = new ImageGenerator('img/designer/', 'img/template/'); $result = $db->query("SELECT templateId || '.' || filetype AS file, \n\t\t\t\t\t\t\t\t CASE WHEN overlayFiletype IS NULL THEN null ELSE templateId || '.' || overlayFiletype END AS overlayFile, \n\t\t\t\t\t\t\t\t positions AS pos\n\t\t\t\t\t\t FROM Templates\n\t\t\t\t\t\t WHERE templateId = ?", array($_GET['t']), array(SQLITE3_TEXT)); if ($db->resultHasRows($result)) { $row = $result->fetchArray(); $templateId = $_GET['t']; $file = $row['file']; $overlayFile = $row['overlayFile']; $pos = $row['pos']; $img = $generator->generate($pos, $file, $overlayFile); } else { $img = imagecreatefrompng('img/error.png'); } } else { exit; } if (isset($_GET['w']) || isset($_GET['h'])) {
public static function Extract($Filename, $Format) { ImageGenerator::Status("Reading icons list from {$Filename}...\n"); ImageGenerator::Status("Looking for icons in " . ImageGenerator::$DataDir . "...\n"); $UnpackedDBC = ImageGenerator::Unpack($Filename, $Format); $Count = count($UnpackedDBC); ImageGenerator::Status($Count . " icons found\n"); $CurrentIcon = 0; $Status = array(); $LastFile = array(); foreach ($UnpackedDBC as $Row) { $SourceFileName = strtolower(str_replace("\\", "/", $Row[1])); if (strpos($SourceFileName, "/") === FALSE) { $SourceFileName = "/interface/icons/" . $SourceFileName; } $Source = ImageGenerator::$DataDir . ImageGenerator::$Patch . '/' . $SourceFileName . ".blp"; $SourceStat = @stat($Source); if ($Row[1] == "") { echo " "; } else { if ($SourceStat == NULL || $SourceStat['size'] == 0) { $Message = "Not Found"; $Status[$Message] = isset($Status[$Message]) ? $Status[$Message] + 1 : 1; $LastFile[$Message][] = $Source; echo "-"; } else { $DestFileName = strtolower(substr(strrchr($SourceFileName, "/"), 1)); $DestStat = @stat(ImageGenerator::$DirArray['large'] . $DestFileName . ".jpg"); if ($DestStat != NULL && $DestStat['mtime'] >= $SourceStat['mtime']) { $Message = "Already up-to-date"; $Status[$Message] = isset($Status[$Message]) ? $Status[$Message] + 1 : 1; $LastFile[$Message][0] = "..."; $LastFile[$Message][1] = $Source; echo "."; } else { $Image = BLP2Image::Create($Source); ImageGenerator::ReSave(ImageGenerator::$DirArray['large'] . $DestFileName . ".jpg", $Image, 56, 56); ImageGenerator::ReSave(ImageGenerator::$DirArray['medium'] . $DestFileName . ".jpg", $Image, 36, 36); ImageGenerator::ReSave(ImageGenerator::$DirArray['small'] . $DestFileName . ".jpg", $Image, 18, 18); ImageGenerator::ReSave(ImageGenerator::$DirArray['tiny'] . $DestFileName . ".gif", $Image, 15, 15); echo "+"; } } } $CurrentIcon++; if ($CurrentIcon % 60 == 0) { ImageGenerator::Status(" " . $CurrentIcon . "/" . $Count . " (" . round(100 * $CurrentIcon / $Count) . "%)\n"); } } if ($CurrentIcon % 60 != 0) { ImageGenerator::Status(" " . $CurrentIcon . "/" . $Count . " (100%)\n"); } echo "Done\n"; if (count($Status) > 0) { echo "Status:\n"; foreach ($Status as $S => $Row) { echo " " . $S . ": " . $Row . "\n"; } } echo "\n\n\n"; }
<?php set_time_limit(300); ini_set("memory_limit", "2500M"); require_once 'Configuration.php'; require_once 'Classes/ImageGenerator.Class.php'; new ImageGenerator($FCCore['DataDirectory'], $FCCore['DataDirectory'] . $FCCore['English6x'], $FCCore['Locale'], $FCCore['IconsDirectory'], '6.x'); echo "<pre>"; ImageGenerator::Extract("ItemDisplayInfo.dbc", "nxxxxsxxxxxxxxxxxxxxxxx"); ImageGenerator::Extract("SpellIcon.dbc", "ns"); echo "</pre>";
die('Insufficient Permissions'); } if (!$me->getAdmin()->canMakeAdmin()) { die('Insufficient Permissions'); } $count = isset($_GET['count']) ? $_GET['count'] : 10; echo "Generating " . $_GET['count'] . " memes<br>"; $startingTime = time(); $tempDbLocation = str_replace('.', '-temp.', $db->getLocation()); @unlink($tempDb); copy($db->getLocation(), $tempDbLocation); $tempDb = new Database($tempDbLocation); $templates = $tempDb->getTemplates(isset($_GET['templateQuery']) ? urldecode($_GET['templateQuery']) : "SELECT * FROM Templates WHERE reviewState = 'a'"); $sources = $tempDb->getSourceImages(isset($_GET['sourceQuery']) ? urldecode($_GET['sourceQuery']) : "SELECT * FROM SourceImages WHERE reviewState = 'a'"); $sourcePaths = array(); for ($i = 0; $i < count($sources); $i++) { array_push($sourcePaths, $sources[$i]->getImage()); } $generator = new ImageGenerator('', ''); for ($i = 0; $i < $count; $i++) { $t = $templates[mt_rand(0, count($templates) - 1)]; $img = $generator->generate($t->getPositions(), $t->getImage(), $t->getOverlayImage(), $sourcePaths); @unlink("img/output/Meme_{$i}.jpg"); imagejpeg($img, "img/output/Meme_{$i}.jpg"); } $db->close(); $tempDb->close(); @unlink($tempDbLocation); echo "Done.<br>"; echo "Took " . (time() - $startingTime) . ' seconds.'; set_time_limit(30);
{ $_SESSION['lastPos'] = '[]'; header('Location: designer.php'); die; } if (!isset($_SESSION['lastPos'])) { kill(); } if (strlen($_SESSION['lastPos']) < 5) { kill(); //there probably aren't any boxes drawn if the json is less than 5 chars long } try { json_decode($_SESSION['lastPos']); $json = $_SESSION['lastPos']; $generator = new ImageGenerator('img/designer/', ''); $generator->generate($json, $_SESSION['activeImg']); } catch (Exception $e) { kill(); } $templateId = $_SESSION['activeId']; $_SESSION['lastId'] = $_SESSION['activeId']; //for the success message $templateFiletype = pathinfo($_SESSION['activeImg'], PATHINFO_EXTENSION); $pos = $_SESSION['lastPos']; $overlayFiletype = $_SESSION['activeOverlay'] == '' ? 'NONE' : pathinfo($_SESSION['activeOverlay'], PATHINFO_EXTENSION); $result = $db->addTemplate($templateId, $pos, $templateFiletype, $overlayFiletype); if ($result === ';success') { $file = pathinfo($_SESSION['activeImg'], PATHINFO_BASENAME); $overlayFile = pathinfo($_SESSION['activeOverlay'], PATHINFO_BASENAME); rename('img/temp/' . $file, 'img/template/' . $file);
/** * This method is called by the admin-ajax subsystem. * Prints the image. */ public static function ajax_callback() { $image = new ImageGenerator(); $image->set('width', intval($_REQUEST['w']))->set('height', intval($_REQUEST['h']))->set('bg_color', 'cccccc')->set('text_color', '222222')->flush(isset($_REQUEST['refresh']))->image(); }
<?php include 'php/autoload.php'; if (isset($_GET['p']) && isset($_SESSION['activeImg'])) { $generator = new ImageGenerator('img/designer/', ''); $template = $_SESSION['activeImg']; $overlay = $_SESSION['activeOverlay'] === '' ? null : $_SESSION['activeOverlay']; $pos = $_GET['p']; try { $img = $generator->generate($pos, $template, $overlay); $_SESSION['lastPos'] = $_GET['p']; } catch (Exception $e) { $img = imagecreatefrompng('img/error.png'); } } elseif (isset($_GET['t'])) { $generator = new ImageGenerator('img/designer/', ''); $template = $db->getTemplates("SELECT Templates.*\n\t\t\t\t\t\t FROM Templates\n\t\t\t\t\t\t WHERE templateId = ?", array($_GET['t']), array(SQLITE3_TEXT))[0]; $img = $generator->generate($template->getPositions(), $template->getImage(), $template->getOverlayFiletype() === null ? null : $template->getOverlayImage()); } else { exit; } if (isset($_GET['w']) || isset($_GET['h'])) { $fullWidth = imagesx($img); $fullHeight = imagesy($img); $w = isset($_GET['w']) ? $_GET['w'] : $fullWidth * ($_GET['h'] / $fullHeight); $h = isset($_GET['h']) ? $_GET['h'] : $fullHeight * ($_GET['w'] / $fullWidth); $newimg = imagecreatetruecolor($w, $h); imagecopyresampled($newimg, $img, 0, 0, 0, 0, $w, $h, $fullWidth, $fullHeight); imagedestroy($img); $img = $newimg; }