<?php
/**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2021, the Friendica project
*
* @license GNU AGPL version 3 or any later version
*
namespace Friendica\Util;
use Friendica\Core\Logger;
-use Friendica\Core\System;
use Friendica\DI;
-use Friendica\Network\HTTPRequest;
+use Friendica\Model\Photo;
/**
* Image utilities
return $data;
}
- $img_str = HTTPRequest::fetchUrl($url, true, 4);
+ if (Network::isLocalLink($url) && ($data = Photo::getResourceData($url))) {
+ $photo = Photo::selectFirst([], ['resource-id' => $data['guid'], 'scale' => $data['scale']]);
+ if (!empty($photo)) {
+ $img_str = Photo::getImageDataForPhoto($photo);
+ }
+ // @todo Possibly add a check for locally stored files
+ }
+
+ if (empty($img_str)) {
+ $img_str = DI::httpClient()->fetch($url, 4);
+ }
if (!$img_str) {
return [];
$filesize = strlen($img_str);
try {
- if (function_exists("getimagesizefromstring")) {
- $data = @getimagesizefromstring($img_str);
- } else {
- $tempfile = tempnam(get_temppath(), "cache");
-
- $stamp1 = microtime(true);
- file_put_contents($tempfile, $img_str);
- DI::profiler()->saveTimestamp($stamp1, "file", System::callstack());
-
- $data = getimagesize($tempfile);
- unlink($tempfile);
- }
+ $data = @getimagesizefromstring($img_str);
} catch (\Exception $e) {
return [];
}