Skip to main content

Some image manipulation with Image Magick

/usr/bin/convert -size 160x160 xc:none \(
  "in.png" -strip -thumbnail "140x140^" -gravity center -crop 140x140+0+0 +repage \(
      +clone -fill black -colorize 100% -fill white -draw "translate 70,70 circle 0,0 70,0"
  \)
  -alpha off -compose copy_opacity -composite
\)
-alpha Set -compose src-over -composite -fill none -stroke "#0000FF" -strokewidth 10 -draw "translate 79.5,79.5 circle 0,0 74,0" "out.png"

http://www.imagemagick.org/discourse-server/viewtopic.php?t=22110

https://stackoverflow.com/questions/2686715/why-png-files-produced-by-imagemagick-are-so-much-bigger-than-jpg-gif

JPG is a lossy compression algorithm while PNG is a lossless one.

This fact alone will (in general) make JPG images smaller than PNG ones. You can tweak the compression ratios for each format, so it could also be that you're not compressing your PNG files as much as your JPG ones.

For a photographic image saving as JPG will usually produce a smaller file than PNG as there's more noise or randomness in the image for the compression to work with. Images created by graphic art tools will tend to have more hard edges and areas of solid colour which will compress better in PNG.

If you have text in your image then PNG is going to produce a better quality image as the harder edges of the characters won't be blurred like they would be if JPG is used.

GIF is smaller because it's based on an colour palette (of 256 colours) rather than the separate RGB values for each pixel (or group of pixels) in JPG and PNG.

http://sweetme.at/2013/09/11/how-to-maximize-png-image-compression-with-optipng/

http://pointlessramblings.com/posts/pngquant_vs_pngcrush_vs_optipng_vs_pngnq/

https://stackoverflow.com/questions/1955505/parsing-json-with-unix-tools

// TODO add some bash loop compress jpg, png here

https://developers.google.com/web/updates/2016/04/intersectionobserver
https://developers.google.com/web/tools/lighthouse/audits/blocking-resources

https://stackoverflow.com/questions/7261855/recommendation-for-compressing-jpg-files-with-imagemagick

Note on Windows, we have to change input parameter position like this:
$ magick softwareConsulting.jpg   -strip -interlace Plane -gaussian-blur 0.05 -quality 85%  softwareConsulting.jpg


convert in new version on Windows change to magick (?)

Create transparent image
https://www.imagemagick.org/discourse-server/viewtopic.php?t=18300

/usr/local/bin/convert -size 326x152 xc:none bg-trans.png
This may be useful for create transparent bg img for another compose.

Compose/merge images at position (fuck my english, it should be geometry keyword)
http://www.imagemagick.org/discourse-server/viewtopic.php?t=20251

convert  background.jpg  tool_marker.png -geometry +50+50 -composite result4.jpg

Fill transparent image (bg) with color

convert -flatten img1.png img1-white.png

For example:
combine two image logo + slogan. logo 150x100, slogan 320x31; final 326x151
=> slogan bottom bar 320 - 326 => padding left / right 3px;
Same as logo (this is very critical part, be careful with this one) because of logo or other image often have padding by default, so we need careful compute left padding for logo.
In this case it is as slogan and +3px. Combine with logo default padding resulted in total ab 12-13px.

F45$ /usr/local/bin/convert bg-trans.png slogan3.gif  -geometry +3+119 -composite tmp.png
F45$ /usr/local/bin/convert tmp.png logo.gif  -geometry +3+7 -composite tmp.png

=> only one tmp image if mistake in one step need redo all :( .

Extract frames from GIF:
convert -coalesce brocoli.gif out%05d.pgm


Comments

Popular posts from this blog

AWS Elasticache Memcached connection

https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/accessing-elasticache.html#access-from-outside-aws http://hourlyapps.blogspot.com/2010/06/examples-of-memcached-commands.html Access memcached https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/GettingStarted.AuthorizeAccess.html Zip include hidden file https://stackoverflow.com/questions/12493206/zip-including-hidden-files phpmemcachedadmin ~ phpMyAdmin or phpPgAdmin ... telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211 stats items stats cachedump 27 100 https://docs.aws.amazon.com/AmazonElastiCache/latest/mem-ug/VPCs.EC.html https://lzone.de/cheat-sheet/memcached VPC ID Security Group ID (sg-...) Cluster: The identifier for the cluster memcached1 Creation Time: The time (UTC) when the cluster was created January 9, 2019 at 11:47:16 AM UTC+7 Configuration Endpoint: The configuration endpoint of the cluster memcached1.ahgofe.cfg.usw1.cache.amazonaws.com:11211 St...

Notes Windows 10 Virtualbox config, PHP Storm Japanese, custom PHP, Apache build, Postgresql

 cmd => Ctrl + Shift + Enter mklink "C:\Users\HauNT\Videos\host3" "C:\Windows\System32\drivers\etc\hosts" https://www.quora.com/How-to-create-a-router-in-php https://serverfault.com/questions/225155/virtualbox-how-to-set-up-networking-so-both-host-and-guest-can-access-internet 1 NAT + 1 host only config https://unix.stackexchange.com/questions/115464/how-to-properly-set-up-2-network-interfaces-in-centos-running-in-virtualbox DEVICE=eth0 TYPE=Ethernet #BOOTPROTO=dhcp BOOTPROTO=none #IPADDR=10.9.11.246 #PREFIX=24 #GATEWAY=10.9.11.1 #IPV4_FAILURE_FATAL=yes #HWADDR=08:00:27:CC:AC:AC ONBOOT=yes NAME="System eth0" [root@localhost www]# cat /etc/sysconfig/network-scripts/ifcfg-eth1 # Advanced Micro Devices, Inc. [AMD] 79c970 [PCnet32 LANCE] DEVICE=eth1 IPADDR=192.168.56.28 <= no eff => auto like DHCP #GATEWAY=192.168.56.1 #BOOTPROTO=dhcp BOOTPROTO=static <= no eff ONBOOT=yes HWADDR=08:00:27:b4:20:10 [root@localhost www]# ...

Rocket.Chat DB schema

_raix_push_notifications avatars.chunks avatars.files instances meteor_accounts_loginServiceConfiguration meteor_oauth_pendingCredentials meteor_oauth_pendingRequestTokens migrations rocketchat__trash rocketchat_cron_history rocketchat_custom_emoji rocketchat_custom_sounds rocketchat_import rocketchat_integration_history rocketchat_integrations rocketchat_livechat_custom_field rocketchat_livechat_department rocketchat_livechat_department_agents rocketchat_livechat_external_message rocketchat_livechat_inquiry rocketchat_livechat_office_hour rocketchat_livechat_page_visited rocketchat_livechat_trigger rocketchat_message rocketchat_oauth_apps rocketchat_oembed_cache rocketchat_permissions rocketchat_raw_imports rocketchat_reports rocketchat_roles rocketchat_room rocketchat_settings rocketchat_smarsh_history rocketchat_statistics rocketchat_subscription rocketchat_uploads system.indexes users usersSessions https://rocket.chat/docs/developer-guides/sc...