How to use Imagick to create pdf's thumbnail - imagick

I want to create a caption of a pdf file that a user uploads on my site. So I installed Imagick, is there any tutorial or any best practise to know how to create a image thumbnail from this pdf ?
By the way, I tried :
$img = new Imagick($_url);
$img->setiteratorindex(0);
$img->setCompression(imagick::COMPRESSION_LZW);
$img->setCompressionQuality(90);
And I must have an installation problem because the object Imagick is not recognized, how do I configure ImageMagick to make it fit with my php configuration ?

Check phpinfo() if imagick is installed.
Otherwise install with apt-get install php5-imagick (for Linux).
You can find some good tutorials on Mikko’s blog

Related

Gimp 2.10.22 has HEIC support but won't work?

I have Gimp 2.10.22 running, which should have HEIC support according to the release notes from last October. So I would have expected that an iOS-created .heic file should open up. Unfortunately, I just get the generic "Unknown file type" error from Gimp when I try to open it there, or drag and drop into Gimp.
The release notes, as well as all the various third party announcements I've seen about the heic support fail to give an example of how to import/open the file.
So I'm stuck - how can I get Gimp to load a .heic image that was created by iOS?
Thanks.
Thanks to folks on the Gimp project (over at Gnome) this issue is due to my distro (Fedora 33) not supporting the heif format. So the version number is 2.10.22, but the heif/heic features are not actually present.
See the issue there.
Two simple workarounds:
Install the flatpak version of Gimp instead of the one from Fedora's repo, or
Install the libheif and gimp-heif-plugin packages from RPMFusion-free repo.
Thanks all.
For people with Fedora, installing gimp-heif-plugin will do the job:
sudo dnf install -y gimp-heif-plugin
Thanks to Daniel Jonsson to point it!
in Ubuntu use:
sudu apt-get install -y gimp-heif-plugin

How put colored image in pdf file, using laravel php and dompdf?

My image is coming black and white and the original image is a .png white and blue.
enter image description here
OK, this turned out to be because ImageMagick wasn't installed on our server. DomPDF should probably check for its existence before attempting to generate PDFs containing PNG files?
Just for the record, here are the steps I was required to take to install ImageMagick on IIS:
Uninstall existing imagick installations and DLL extensions from PHP
Install imagick ImageMagick-6.6.2-10-Q16-windows-dll from here.
Add latest version of thread safe (ts) or non-thread safe (nts) dll, for example php_imagick_nts.dll, to PHP extension dir from this link.
Add extension=php_imagick_nts.dll to php.ini
Run following cmd command to add IIS permissions to temporary directory: cacls c:\windows\temp /E /C /G iusr_SERVERNAME:R
It's worth noting that the last statement may be considered insecure on working installations. You can change the imagick temporary directory in the configuration settings, but personally I couldn't get it working.

ValueError with spacy.load('en_core_web_sm')

I'm getting
ValueError: could not broadcast input array from shape (96) into shape (128)
for
spacy.load('en_core_web_sm')
I manually downloaded and installed the model as i'm working on a work computer with download restrictions.
I have followed the instructions to download and copy from this link: https://github.com/explosion/spaCy/issues/3113
Copy the folder
Python35\lib\site-packages\en_core_web_sm
create a folder named en in
Python35\Lib\site-packages\spacy\data
, paste the copied contents to en, and rename the folder as en_core_web_sm-2.0.0.
Copy the
__init__.py
file in en_core_web_sm and paste it in en (that is, the init.py file must be in both
Python35\Lib\site-packages\spacy\data\en and
Python35\Lib\site-packages\spacy\data\en\en_core_web_sm-2.0.0
I am able to run
spacy.load('en_core_web_sm')
but am giving a ValueError instead.
Appreciate all help. Thanks!
I had the same error.
Updated spacy to version 2.1.3.
Now it is working properly.
If you are using Anaconda:
conda install -c conda-forge spacy
In order to let you use the en_core_web_sm model via the shortcut link 'en', spaCy creates a symlink. This means you need to have permissions to do this. See here for more details: https://spacy.io/usage/models#usage-link
A note in case others come across this issue later: Copy-pasting the folder and renaming it is really only the last resort if you can't run the command with admin permissions and you need to be able to load the model via spacy.load('en'). This is usually not the case – you can just install the model and load it via its full name, spacy.load('en_core_web_sm'). In fact, I often prefer this syntax, since it's more explicit and you immediately know which model is loaded.
--Copied from the same link you have mentioned in the question. No Copyright violation.
Download en through terminal then use
spacy.load("en_core_web_sm") it will work..

ImageMagick: No decode delegate for this image format `' # error/constitute.c/ReadImage/504

Problem: ImageMagick convert is unable to crop image. It looks like it doesn't recognize the image type?
What I've Tried:
I've searched around online and I've seen several similar issues but not mine.
I've attempted their solutions including
Uninstalling and reinstalling ImageMagick via brew.
identify -list format (JPEG, GIF, PNG, TIFF, etc were all there and all had rw permissions)
convert -version (png is is among the built-in delegates)
convert pic1.png pic1-jpg.jpg (this worked fine)
convert pic1-jpg.jpg pic1-jpg.jpg (this worked fine)
convert pic1-jpg.jpg 805X972+34+94 pic1-jpg-crop.jpg (this gave the same error as for png as shown below)
 
I'm working on Mac OSX El Capitan and everything else in terminal works fine. ImageMagick was already installed.
When I run:
$ convert /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487.png 805X972+34+94 /Users/Innovate/Desktop/crop/2015-04-26-GinaDate13_487-cropped.png
I get:
convert: unable to open image `805X972+34+94': No such file or directory # error/blob.c/OpenBlob/2702.
convert: no decode delegate for this image format `' # error/constitute.c/ReadImage/504.
no decode delegate for this image format `' # error/constitute.c/ReadImage/504
In the other posts on this issue, people get
convert no decode delegate for this image format `PNG'
Or similar (except with their image type or filename and image type)
 
However, mine doesn't say anything about image file type...
I have not tried uninstalling ImageMagick then installing it manually from sources because I'm not very confident at doing that... (this solution was shown: https://stackoverflow.com/a/34633084/5398660 )
Does anyone know what might be going on?
Also, can anyone help me interpret the # error/constitute.c/ReadImage/504 part? I'm looking at the code for constitute.c but I'm not sure if I can get useful information from it to solve my problem (I only know a bit of C)
Thank you!
brew remove imagemagick //to delete current version
brew install imagemagick --build-from-source
fixed it for me on mac
I had the same error on Ubuntu 20.04 and ImageMagick.
Had to reinstalled ImageMagick with all add ons according to this instruction:
#These are the steps required in order to Install ImageMagick with JPG, PNG and TIFF delegates.
sudo apt-get update
#Install Build-Essential in order to configure and make the final Install
sudo apt-get install build-essential
#libjpg62-dev required in order to work with basic JPG files
sudo apt-get install -y libjpeg62-dev
#libtiff-dev is required in order to work with TIFF file format
sudo apt-get install -y libtiff-dev
#Download ImageMagick
wget https://www.imagemagick.org/download/ImageMagick.tar.gz
#Untar Imagemagick
tar xvzf ImageMagick.tar.gz
#Access the working directory
cd ImageMagick/[version_number]
#Configure and make sure to disable the "shared" option
./configure --disable-shared
#Make
sudo make
#Install
sudo make install
#Final Check
sudo make check
Throwing in my two cents as I too have struggled with this problem for the last few days. I had no problem running ImageMagick commands on my local machine, but got the error message as mentioned by OP when I ran the command from a Tomcat server running on Azure Cloud.
I could identify the cause by running the following command:
convert -list format
On my local machine, it would return quite a long list of all the supported formats, whereas on Kudu (Azure CLI tool) it would return an empty result. This indicates ImageMagick didn't find the path to its DLL files required for processing.
In my case, the problem was simply caused by a lack of configuration on Azure:
The absence of the ImageMagick root folder in the system environment variable %PATH%
The absence of an environment variable "MAGICK_HOME" (set to the root folder of your ImageMagick installation directory)
The absence of an environment variable "MAGICK_CODER_MODULE_PATH" (set to the folder mentioned above + /modules/coders)
NOTE: for people who are also experiencing this problem on Azure, you can have a look at this SO answer which explains how to add an environment variable using an XDT Transform.
Alright, with playing around I figured out the solution and I'm posting it here for other people who might run into this issue:
Apparently, this is not/no longer is/not for me the way to crop an image using ImageMagick convert. Even though this usage is shown here it did not work for me using El Capitan (maybe it's the OS?).
Instead of using
convert img.png 805X972+34+94 img-crop.png
The correct command, which works is:
convert image.png -crop 805X972+34+94 image-crop.png
That is, the command goes:
convert image.ext -crop heightXwidth+positionX+positionY* imagecropped.ext
More can be found here.
From the description on that ImageMagick page I was confused about the example where they have convert rose: -crop but you can just use it the way I mentioned above and it works fine.
Install ImageMagick with JPG, PNG and TIFF Delegates - Ubuntu (20.04)
Approach 1
Chances are, ImageMagick is already installed on your computer if you are using some flavor of Linux, and its likely not installed if you are using some form of Windows. In either case, you can type the following to find out:
Clone the source repository:
git clone https://github.com/ImageMagick/ImageMagick.git ImageMagick-7.1.0
Next configure and compile ImageMagick. Note the pkg-config script is required so that ImageMagick can find certain optional delegate libraries on your system. To configure, type:
cd ImageMagick-7.1.0
./configure
make
If build fails, try gmake instead. For advanced users, we recommend a modules build:
./configure --with-modules
If ImageMagick configured and compiled without complaint, you are ready to install it on your system. Administrator privileges are required to install. To install, type
sudo make install
You may need to configure the dynamic linker run-time bindings:
sudo ldconfig /usr/local/lib
Finally, verify the ImageMagick install worked properly, type
/usr/local/bin/convert logo: logo.gif
For a more comprehensive test, run the ImageMagick validation suite. Ghostscript and Freetype are prerequisites, otherwise expect the EPS, PS, PDF and text annotations tests to fail.
make check
Approach 2
Follow the below link
Install ImageMagick with JPG, PNG and TIFF Delegates - Ubuntu (20.04)
I was receiving the same error for missing some single quotes.
When combining images with convert -draw with quotes, the image supplied must be wrapped in quotes.
No decode delegate for this image format `' # error/constitute.c/ReadImage/504
convert myBackground.png -font Arial -pointsize 20 \
-draw "gravity west image Over 50,80,20,20 'myForeground.png'" \
# -----------------------------------------^ added missing single quotes
-flatten ./finalImage.jpg
When I added in the single quotes around myForeground the issue disappeared. What a lousy error!
I also had to fight this problem today in a convert operation that applied a different color space profile.
It seems imagick's convert command is sensitive to the file extension of the profile's file name. In my case it was a temporary file without a suffix that triggered the same error message from the question title
convert infile.jpg -profile /tmp/profile-without-suffix outfile.jpg
Adding the correct suffix to the profile file name fixes the problem:
(assuming ICC format)
convert infile.jpg -profile /tmp/profile-without-suffix.icc outfile.jpg
For me (on macos Mojave, using Imagick with CraftCMS) I had to reinstall Imagick with pecl uninstall imagick and pecl install imagick (and then restart Apache with sudo apachectl -k restart). I must have run brew upgrade and got a newer version of ImageMagick which caused Imagick to barf up a similar error of NoDecodeDelegateForThisImageFormat 'JPEG' # error/constitute.c/ReadImage/556.
An alternate Imagemagick command would be:
convert pic1-jpg.jpg[805x972+34+94] pic1-jpg-crop.jpg
or as stated earlier
convert pic1-jpg.jpg -crop 805x972+34+94 +repage pic1-jpg-crop.jpg
see Inline Image Crop at https://www.imagemagick.org/script/command-line-processing.php
Generally, I prefer the use of x (lower case) rather than X (uppercase) between the width and height, for easier reading. But either works.
I used a suitable docker image, for example:
docker run -v /path/to/picsdir/:/pics --rm dpokidov/imagemagick /pics/img.heic /pics/img.png
This helped me convert from HEIC to PNG.

automatic installation of common magento extensions at project kickoff

There are some Magento Connect extensions that I find myself installing every time I create a new project, such as Fontis_Recaptcha, Mass_Product_Relater, HM_DeveloperToolbar, ModuleCreator, Alanstormdotcom_Layoutviewer, etc. What's on your list?
Does anyone know of a capability to automate the installation of a base set of modules? In the same way that Mage itself installs all its modules. I guess a bash or phing script to automate PEAR? Thoughts?
I would take another approach. Install a clean installation and add all your extension. When your done export the DB and zip all the files. Then you should be able to use the files and the DB as a base for all your magento installations...
I do the same with Joomla, have not tried that with magento yet, but it should work.
Cant you just use the auto installer script as provided and maintained here:
http://www.magentocommerce.com/wiki/groups/227/magento_bash_script_installer
and edit it to install your desired extensions
ie just add ./pear install xxxxxxx at the end of the script.

Resources