Concatenating multiple pbm files, cmd - image

So we have, let's say, 10 files, called 01.pbm, 02.pbm, 03.pbm, etc. Using cmd with commands like paste or clip (or of course any you know) how could you merge all 10 of them keeping the corresponding file size? (if each of them is 1kb, the output should be 10kb). Keep in mind I use windows... (ugh, I know)

Use ImageMagick v6 to accomplish the task.
To append (merge) left-to-right:
convert *.pbm +append lr_out.pbm
To append top-to-bottom:
convert *.pbm -append tb_out.pbm
For more information read the documentation
Update
As fmw42 pointed out for IM v7 then the syntax should be:
magick *.pbm +append lr_out.pbm
magick *.pbm -append tb_out.pbm

So at the end it's just the simple function "type"...

Related

Why is magick giving an error while converting base64 files?

I have a bunch of base64 encoded images which I want to convert to their corresponding image files using magick (ImageMagick version 7). I can paste the base64 directly into various online converters which works. But command-line magick is failing.
Example of a file is attached in "x.txt". Pasting it into an online converter like https://onlinejpgtools.com/convert-base64-to-jpg readily yields an image. But this command line fails:
magick inline:`cat x.txt` x.png
This says "magick: corrupt image". If I remove the "inline" part, I get "magick: unable to open image". Here is a link to download the sample file x.txt:
In Imagemagick, try (no cat). That works for me.
magick inline:x.txt x.png
Or pipe from cat to magick as
cat tmp.txt | magick inline:- y.png

Using wildcards with "convert". Or "convert"ing a group of files

I regularly scan in my Homework for class. My scanner exports raw jpg files to usb, and from there I can use gimp to edit and save the files as a pdf. One time saver I've found is to export my multi-page homeworks as a .mng file and then use the convert function to turn it into a pdf. I do it this way because Gimp automatically merges all layers when exporting to a pdf.
convert HW.mng HW.pdf
this works well for individual files, but at the end of every week I can have dozens of files to convert.
I have tried using wildcards in the filenames for convert:
convert *.mng *.pdf
This always runs successfully and never throws an error, but never produces any pdfs.
Both
convert HW*.mng HW*.pdf
and
convert "HW*.mng" "HW*.pdf"
yeild the error
convert: unable to open image `HW*.pdf': Invalid argument # error/blob.c/OpenBlob/2712.
which I think means the error lies in exporting with a wildcard.
Is there any way to convert all of a specific file type to another using convert? Or should I try using a different program?
You can see this StackExchange post. The accepted answer basically does what you want.
for file in *.mng; do convert -input "$file" -output "${file/%mng/pdf}"; done
For convert in particular, use mogrify (which is part of ImageMagick as well) as suggested by Mark Setchell in a comment. mogrify can be used to edit/convert files in batches. The command for your case would be
mogrify -format pdf -- *.mng

How to Append and batch process different logos with different images

I have list of images and logos and want to join them like appending it on middle while i have following details.
Images with name of files like image1.jpg, image2.jpg, image3.jpg, image4.jpg all of them are in size of 1024x876
Logo with name of files like logo1.png, logo2.png, logo3.png and so on all of them are in size of 1024x876
I want to join image1.jpg with logo1.png, in a way that i should got the transparent image as logo image contain empty background.
Instead of copying every logo and pasting on every images, how can i do this automation with script or any paid tool. Tnx
I would commend ImageMagick to you, it is available for free for Linux, macOS and Windows. Use v7.
The basic command you want is:
magick -gravity center background.jpg overlay.png -composite result.jpg
If you have lots of files to do, you will need a FOR loop. I don't really speak Windows BATCH, but it will look something like this:
#ECHO OFF
FOR /F "usebackq" %%i in (`DIR /B *.jpg`) DO (
ECHO magick -gravity center %%i %%~ni.png -composite result-%%i
)
Make a backup of your images and run this on a small sample copy. If it looks good, remove the ECHO and run again for real.

Image Magick is generating black images while converting pdf to jpg

Image Magick version in use is 6.8.8.1.
Via command line on windows I am just trying to convert a *.pdf file into .jpg file using the following command
convert -density 100 -colorspace RGB "input.pdf" "output.jpg"
But the resulting output.jpg file is with a black image (there is no content). Any one out there could please guide on this ?
When you open this PDF-file by using a text-editor and it's header contains something like this:
%PDF-1.5
%¦éÏÄ
4 0 obj
<</Length 5 0 R/Filter /FlateDecode>>stream
....
....
then you have to decode this flat-encoded stream first before you can convert it to an image.
To solve this problem:
You can use the GUI-Tool pdftk free, set your environment-path to the bin-folder within the pdftk-folder and execute:
pdftk ENCODED_FILENAME.pdf output DECODED_FILENAME.pdf uncompress
in the shell to deflate/unzip this file.
Create a new file that is not encoded or zipped.
Hope this helps.
Set alpha flag to off in convert command.

Converting tiff to mode 1 bit images

Is it possible to convert a tiff image to mode 1-bit image using command line tools. I saw it can be done with gimp but I need to run a script so I prefer a solution using packages like imagemagick etc
If the image contents is already black and white, and you just need to convert, use:
convert input.tif -depth 1 output.tif
If you also require to threshold the image, use something like:
convert input.tif -separate -black-threshold 128 -depth 1 output.tif

Resources