/**
  * 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;
 }
Exemple #2
0
<?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;
}