mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-10 13:12:50 +01:00
Add Imagick extension to improve image compression
This commit is contained in:
parent
f66d9e3447
commit
bc4215a1b5
@ -27,4 +27,5 @@ trait WithTypeHelpers
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -205,4 +205,33 @@ class Document extends BaseModel
|
||||
{
|
||||
return ctrans('texts.document');
|
||||
}
|
||||
|
||||
public function compress(): mixed
|
||||
{
|
||||
|
||||
$image = $this->getFile();
|
||||
$catch_image = $image;
|
||||
|
||||
if(extension_loaded('imagick'))
|
||||
return $catch_image;
|
||||
|
||||
try {
|
||||
$file = base64_encode($image);
|
||||
|
||||
$img = new \Imagick();
|
||||
$img->readImageBlob($file);
|
||||
$img->setImageCompression(true);
|
||||
$img->setImageCompressionQuality(50);
|
||||
|
||||
return $img->getImageBlob();
|
||||
|
||||
}
|
||||
catch(\Exception $e){
|
||||
|
||||
nlog($e->getMessage());
|
||||
return $catch_image;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -64,9 +64,9 @@ class ClientService
|
||||
|
||||
/**
|
||||
* Seeing too many race conditions under heavy load here.
|
||||
* @deprecated
|
||||
*
|
||||
* @param float $amount
|
||||
* @return void
|
||||
* @return ClientService
|
||||
*/
|
||||
public function updateBalance(float $amount)
|
||||
{
|
||||
|
@ -1038,6 +1038,7 @@ html {
|
||||
$container = $dom->createElement('div');
|
||||
$container->setAttribute('style', 'display:grid; grid-auto-flow: row; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr);justify-items: center;');
|
||||
|
||||
/** @var \App\Models\Document $document */
|
||||
foreach ($this->entity->documents()->where('is_public', true)->get() as $document) {
|
||||
if (!$document->isImage()) {
|
||||
continue;
|
||||
@ -1045,7 +1046,7 @@ html {
|
||||
|
||||
$image = $dom->createElement('img');
|
||||
|
||||
$image->setAttribute('src', "data:image/png;base64,".base64_encode($document->getFile()));
|
||||
$image->setAttribute('src', "data:image/png;base64,".base64_encode($document->compress()));
|
||||
$image->setAttribute('style', 'max-width: 50%; margin-top: 20px;');
|
||||
|
||||
$container->appendChild($image);
|
||||
|
Loading…
Reference in New Issue
Block a user