]> git.mxchange.org Git - friendica.git/blobdiff - src/Object/Image.php
Little fixes (#5414)
[friendica.git] / src / Object / Image.php
index 7cbc2432d995ecf2f4352b4eb80bcdc3c6d7349d..50e93672d18dc4dd6e09c14cfc8c8de2ed6ef923 100644 (file)
@@ -8,15 +8,15 @@ namespace Friendica\Object;
 use Friendica\App;
 use Friendica\Core\Cache;
 use Friendica\Core\Config;
+use Friendica\Core\L10n;
 use Friendica\Core\System;
 use Friendica\Database\DBM;
 use Friendica\Model\Photo;
+use Friendica\Util\Network;
 use Exception;
 use Imagick;
 use ImagickPixel;
 
-require_once "include/photos.php";
-
 /**
  * Class to handle images
  */
@@ -43,13 +43,13 @@ class Image
                if (class_exists('Imagick')) {
                        // Imagick::queryFormats won't help us a lot there...
                        // At least, not yet, other parts of friendica uses this array
-                       $t = array(
+                       $t = [
                                'image/jpeg' => 'jpg',
                                'image/png' => 'png',
                                'image/gif' => 'gif'
-                       );
+                       ];
                } else {
-                       $t = array();
+                       $t = [];
                        $t['image/jpeg'] ='jpg';
                        if (imagetypes() & IMG_PNG) {
                                $t['image/png'] = 'png';
@@ -115,11 +115,11 @@ class Image
         */
        public static function getFormatsMap()
        {
-               $m = array(
+               $m = [
                        'image/jpeg' => 'JPG',
                        'image/png' => 'PNG',
                        'image/gif' => 'GIF'
-               );
+               ];
                return $m;
        }
 
@@ -728,11 +728,14 @@ class Image
                $type = null;
                if ($fromcurl) {
                        $a = get_app();
-                       $headers=array();
+                       $headers=[];
                        $h = explode("\n", $a->get_curl_headers());
                        foreach ($h as $l) {
-                               list($k,$v) = array_map("trim", explode(":", trim($l), 2));
-                               $headers[$k] = $v;
+                               $data = array_map("trim", explode(":", trim($l), 2));
+                               if (count($data) > 1) {
+                                       list($k,$v) = $data;
+                                       $headers[$k] = $v;
+                               }
                        }
                        if (array_key_exists('Content-Type', $headers))
                                $type = $headers['Content-Type'];
@@ -769,26 +772,34 @@ class Image
         */
        public static function getInfoFromURL($url)
        {
-               $data = array();
+               $data = [];
+
+               if (empty($url)) {
+                       return $data;
+               }
 
                $data = Cache::get($url);
 
                if (is_null($data) || !$data || !is_array($data)) {
-                       $img_str = fetch_url($url, true, $redirects, 4);
+                       $img_str = Network::fetchUrl($url, true, $redirects, 4);
                        $filesize = strlen($img_str);
 
-                       if (function_exists("getimagesizefromstring")) {
-                               $data = getimagesizefromstring($img_str);
-                       } else {
-                               $tempfile = tempnam(get_temppath(), "cache");
+                       try {
+                               if (function_exists("getimagesizefromstring")) {
+                                       $data = getimagesizefromstring($img_str);
+                               } else {
+                                       $tempfile = tempnam(get_temppath(), "cache");
 
-                               $a = get_app();
-                               $stamp1 = microtime(true);
-                               file_put_contents($tempfile, $img_str);
-                               $a->save_timestamp($stamp1, "file");
+                                       $a = get_app();
+                                       $stamp1 = microtime(true);
+                                       file_put_contents($tempfile, $img_str);
+                                       $a->save_timestamp($stamp1, "file");
 
-                               $data = getimagesize($tempfile);
-                               unlink($tempfile);
+                                       $data = getimagesize($tempfile);
+                                       unlink($tempfile);
+                               }
+                       } catch (Exception $e) {
+                               return false;
                        }
 
                        if ($data) {
@@ -852,7 +863,7 @@ class Image
                                }
                        }
                }
-               return array("width" => $dest_width, "height" => $dest_height);
+               return ["width" => $dest_width, "height" => $dest_height];
        }
 
        /**
@@ -873,7 +884,7 @@ class Image
 
                if (!DBM::is_result($r)) {
                        logger("Can't detect user data for uid ".$uid, LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                }
 
                $page_owner_nick  = $r[0]['nickname'];
@@ -884,7 +895,7 @@ class Image
 
                if ((strlen($imagedata) == 0) && ($url == "")) {
                        logger("No image data and no url provided", LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                } elseif (strlen($imagedata) == 0) {
                        logger("Uploading picture from ".$url, LOGGER_DEBUG);
 
@@ -897,7 +908,7 @@ class Image
 
                if (($maximagesize) && (strlen($imagedata) > $maximagesize)) {
                        logger("Image exceeds size limit of ".$maximagesize, LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                }
 
                $tempfile = tempnam(get_temppath(), "cache");
@@ -911,7 +922,7 @@ class Image
                if (!isset($data["mime"])) {
                        unlink($tempfile);
                        logger("File is no picture", LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                }
 
                $Image = new Image($imagedata, $data["mime"]);
@@ -919,7 +930,7 @@ class Image
                if (!$Image->isValid()) {
                        unlink($tempfile);
                        logger("Picture is no valid picture", LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                }
 
                $Image->orient($tempfile);
@@ -937,7 +948,7 @@ class Image
                $width = $Image->getWidth();
                $height = $Image->getHeight();
 
-               $hash = photo_new_resource();
+               $hash = Photo::newResource();
 
                $smallest = 0;
 
@@ -946,15 +957,15 @@ class Image
                $defperm = "";
                $visitor = 0;
 
-               $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, t('Wall Photos'), 0, 0, $defperm);
+               $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, L10n::t('Wall Photos'), 0, 0, $defperm);
 
                if (!$r) {
                        logger("Picture couldn't be stored", LOGGER_DEBUG);
-                       return(array());
+                       return([]);
                }
 
-               $image = array("page" => System::baseUrl().'/photos/'.$page_owner_nick.'/image/'.$hash,
-                       "full" => System::baseUrl()."/photo/{$hash}-0.".$Image->getExt());
+               $image = ["page" => System::baseUrl().'/photos/'.$page_owner_nick.'/image/'.$hash,
+                       "full" => System::baseUrl()."/photo/{$hash}-0.".$Image->getExt()];
 
                if ($width > 800 || $height > 800) {
                        $image["large"] = System::baseUrl()."/photo/{$hash}-0.".$Image->getExt();
@@ -962,7 +973,7 @@ class Image
 
                if ($width > 640 || $height > 640) {
                        $Image->scaleDown(640);
-                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, t('Wall Photos'), 1, 0, $defperm);
+                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, L10n::t('Wall Photos'), 1, 0, $defperm);
                        if ($r) {
                                $image["medium"] = System::baseUrl()."/photo/{$hash}-1.".$Image->getExt();
                        }
@@ -970,7 +981,7 @@ class Image
 
                if ($width > 320 || $height > 320) {
                        $Image->scaleDown(320);
-                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, t('Wall Photos'), 2, 0, $defperm);
+                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, L10n::t('Wall Photos'), 2, 0, $defperm);
                        if ($r) {
                                $image["small"] = System::baseUrl()."/photo/{$hash}-2.".$Image->getExt();
                        }
@@ -995,7 +1006,7 @@ class Image
                        $min = 160;
                        $Image->crop(160, $x, $y, $min, $min);
 
-                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, t('Wall Photos'), 3, 0, $defperm);
+                       $r = Photo::store($Image, $uid, $visitor, $hash, $tempfile, L10n::t('Wall Photos'), 3, 0, $defperm);
                        if ($r) {
                                $image["thumb"] = System::baseUrl()."/photo/{$hash}-3.".$Image->getExt();
                        }