All Projects → cdefgah → whatsapp-jpeg-repair

cdefgah / whatsapp-jpeg-repair

Licence: GPL-3.0 license
A handy tool to fix jpeg files downloaded from WhatsApp and prevent errors upon opening these files in Adobe Photoshop.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Batchfile
5799 projects

Projects that are alternatives of or similar to whatsapp-jpeg-repair

TinyJPG
images jpg or jpeg compressed and watcher fsnotify
Stars: ✭ 73 (+143.33%)
Mutual labels:  jpg, jpeg, jpeg-image
HEIF-converter
Converter for High Efficiency Image Format(HEIF)
Stars: ✭ 24 (-20%)
Mutual labels:  jpg, jpeg
Photoshopcclinux
Photoshop CC v19 installer for Gnu/Linux
Stars: ✭ 2,894 (+9546.67%)
Mutual labels:  photoshop, adobe-photoshop
Optimise Images
Batch image resizer, optimiser and profiler using ImageMagick convert, OptiPNG, JpegOptim and optional ZopfliPNG, Guetzli and MozJPEG.
Stars: ✭ 64 (+113.33%)
Mutual labels:  jpg, jpeg
srcset.sh
A command line script that generates multiple responsive versions of an image at width breakpoints -- 320,480,640,768,960,1024,1280,1440 pixels wide -- that match common Mobile and widescreen desktop/laptop viewports using Imagemagick's convert utility and outputs the needed <img/> tag
Stars: ✭ 20 (-33.33%)
Mutual labels:  photoshop, jpeg
Epeg
Insanely fast JPEG/ JPG thumbnail scaling with the minimum fuss and CPU overhead. It makes use of libjpeg features of being able to load an image by only decoding the DCT coefficients needed to reconstruct an image of the size desired.
Stars: ✭ 220 (+633.33%)
Mutual labels:  jpg, jpeg
Jpegsnoop
JPEGsnoop: JPEG decoder and detailed analysis
Stars: ✭ 282 (+840%)
Mutual labels:  jpg, jpeg
brutalism
Battleaxe's component library for Adobe CEP panels
Stars: ✭ 43 (+43.33%)
Mutual labels:  photoshop, adobe-photoshop
Jpegkit Android
Efficient JPEG operations for Android without the risk of an OutOfMemoryException.
Stars: ✭ 154 (+413.33%)
Mutual labels:  jpg, jpeg
Stm32 graphics display drivers
STM32 LCD drivers (currently: spi(dma), gpio, fsmc(dma), st7735, st7783, ili9325, ili9328, ili9341, ili9486, ili9488, hx8347g)
Stars: ✭ 151 (+403.33%)
Mutual labels:  jpg, jpeg
Jpeg Autorotate
Node module to rotate JPEG images based on EXIF orientation.
Stars: ✭ 127 (+323.33%)
Mutual labels:  jpg, jpeg
HEIF
Mac OS X: Convert any image to HEIF/HEIC format
Stars: ✭ 58 (+93.33%)
Mutual labels:  jpg, jpeg
Elf Strings
elf-strings will programmatically read an ELF binary's string sections within a given binary. This is meant to be much like the strings UNIX utility, however is purpose built for ELF binaries.
Stars: ✭ 127 (+323.33%)
Mutual labels:  utility, golang-application
dom-to-image-more
Generates an image from a DOM node using HTML5 canvas
Stars: ✭ 231 (+670%)
Mutual labels:  jpg, jpeg
chronoman
Utility class to simplify use of timers created by setTimeout
Stars: ✭ 15 (-50%)
Mutual labels:  utility
jpgtxt
Generating jpg files that can be viewed both in image viewer and text editor (as ASCII art)
Stars: ✭ 24 (-20%)
Mutual labels:  jpeg
Open-APIs
Collection of Unlimited APIs
Stars: ✭ 55 (+83.33%)
Mutual labels:  whatsapp
whatsapp-web
Simon is a Python library that helps made easy the browser automation for WhatsApp Web service
Stars: ✭ 67 (+123.33%)
Mutual labels:  whatsapp
whatsapp-portable
🚀 WhatsApp portable for Windows
Stars: ✭ 36 (+20%)
Mutual labels:  whatsapp
vstutils
Small framework for easy generates web-applications (SPA or Single Page Application).
Stars: ✭ 39 (+30%)
Mutual labels:  utility

WhatsApp Jpeg Image Repair

version 2.1.1 (released on June 05, 2021)

When you are sent jpeg files via WhatsApp and then try to open received files in the Adobe Photoshop, there's a chance you'll get the following error in Photoshop:

Could not complete your request because a SOFn, DQT, or DHT JPEG marker is missing before a JPEG SOS marker

For this case users are usually advised to open the broken file in MS Paint (or something similar in MacOS) first and save it as jpeg file. Usually it helps, but when you have many broken image files, opening and saving them one by one may get a little tedious.

WhatsApp Jpeg Image Repair application solves this problem by repairing multiple broken files at once.

How to use the tool

Download application archive. Navigate to the application releases. Then expand Assets section and download application zip archive suitable for your operating system. Linux users are advised to download zip file, built for MacOS operating system.

Unzip application archive to the folder of your choosing, preferrably your home folder, e.g. Documents or Desktop folder, to prevent filesystem access control issues upon running the application.

Below, there are step-by-step instructions for different operating systems.

Microsoft Windows users

For users' convenience I've added script file runme.bat file. It helps to use various options and switches to users who are not familiar with cmd-console/terminal window.

Just edit this file, change the relevant options and switches (listed in the Options and switches chapter below), add/remove options/switches you want, save the file and just run it via mouse doubleclick.

Please note, that runme.bat file is a plain text file. And you don't need a special application to edit this file.

Just use a simple text editor of your choosing, like Notepad++, it can be downloaded here: https://notepad-plus-plus.org/downloads/

Install it, and then, just do the mouse right click on the runme.bat and select "Edit with Notepad++".

Next steps:

  1. Place broken jpeg files from WhatsApp to the whatsapp-files directory, located in the application folder.
  2. Run the application.
  3. Go to the repaired-files folder to get repaired image files.

Apple MacOS users

For users' convenience I've added script file runme.sh file. It helps to use various options and switches to users who are not familiar with terminal window. Available options are listed in the Options and switches chapter below.

To edit runme.sh file launch TextEdit, choose File - Open from menu and select runme.sh file: https://support.apple.com/guide/textedit/open-documents-txte51413d09/mac

Before using runme.sh open terminal in the application folder. Here is how: https://apple.stackexchange.com/questions/11323/how-can-i-open-a-terminal-window-directly-from-my-current-finder-location

And then type in the terminal the following command:

chmod +x runme.sh

And press Enter. After that just close the terminal window.

Please note that MacOS Gatekeeper blocks this application when you try to launch it. To run the downloaded application on MacOS your should either disable MacOS Gatekeeper or build the application from the source code as described below. And replace existing executable in downloaded zip archive with the newly-built file. Building from the source code is recommended way, because disabling Gatekeeper on different MacOS versions is not an easy task.

Source code file WhatsAppJpegRepair.go is included to the application archive for MacOS users. And in case you've decided to build the application from the source code, follow these steps:

  1. Delete existing WhatsAppJpegRepair file, please don't confuse this file with WhatsAppJpegRepair.go.
  2. Download and install Go language support from the official web-site: https://golang.org/
  3. Open terminal in the unzipped application folder, and execute the following command:
go build WhatsAppJpegRepair.go

A file with the name WhatsAppJpegRepair (without any extension) will be generated. And now you can run the application on your MacOS without disabling Gatekeeper.

Next steps:

  1. Place broken jpeg files from WhatsApp to the whatsapp-files directory, located in the application folder.
  2. Run the application.
  3. Go to the repaired-files folder to get repaired image files.

Linux users

As you are a Linux user I suppose you are familiar with the terminal window and commands. Anyway for users' convenience I've added script file runme.sh file with some sample switches and options inside. Just edit it using your text editor and add/remove options and switches of your choice.

Don't forget to assign Executable attribute to the runme.sh file via running the command:

chmod +x runme.sh

in the unzipped application folder.

Now, let's build the tool from the source code for your Linux operating system.

  1. Install Go language support for Linux: https://golangdocs.com/install-go-linux
  2. Download and unpack zip-file, built for MacOS users as advised above or clone this repository.
  3. Delete existing WhatsAppJpegRepair file, please don't confuse this file with WhatsAppJpegRepair.go.
  4. Open terminal in the unzipped application folder, and execute the following command:
go build WhatsAppJpegRepair.go

A file with the name WhatsAppJpegRepair (without any extension) will be generated.

Next steps:

  1. Place broken jpeg files from WhatsApp to the whatsapp-files directory, located in the application folder.
  2. Run the application.
  3. Go to the repaired-files folder to get repaired image files.

Options and switches:

-srcPath - contains path to the broken WhatsApp files By default the application internal folder whatsapp-files is being used. Currently this folder contains sample broken whatsapp jpeg images for demonstration purposes.

Example:

WhatsAppJpegRepair -srcPath=/home/username/Documents/Photos/WhatsAppFiles

this call will use /home/username/Documents/Photos/WhatsAppFiles folder as the source path to get broken whatsapp files.

-destPath - contains path to the folder, where repaired files will be stored. By default the application internal folder repaired-files is being used. If this folder does not exist, it will be created at runtime.

Example:

WhatsAppJpegRepair -srcPath=/home/username/Documents/Photos/WhatsAppFiles -destPath=/home/username/Documents/RepairedPhotos

this call will use /home/username/Documents/Photos/WhatsAppFiles folder to look for broken whatsapp files, and will use /home/username/Documents/RepairedPhotos folder to store repaired images.

-dontWaitToClose - if it is set to true, the application wil close when done, otherwise it will wait until user presses 'Enter'. Default value is false.

Example:

WhatsAppJpegRepair -srcPath=/home/username/Documents/Photos/WhatsAppFiles -dontWaitToClose=true

this call will use folder /home/username/Documents/Photos/WhatsAppFiles as a source files path, and application will be closed as it finished files processing. All repaired files will be stored to the default destination folder repaired-files (check -destPath option description above).

-useCurrentModificationDateTime - when set to true, this switch sets current date/time as repaired files' 'modified' attribute. By default it is set false: all repaired files retain the same file modification date/time as source (broken) image files.

Example:

WhatsAppJpegRepair -useCurrentModificationDateTime=true

this call will use default source and destination folders (check -srcPath and -destPath options above), the application will wait until user presses Enter to exit when all files are processed, and current date/time will be set as file modification time for created repaired files.

-deleteWhatsAppFiles - when set to true, the application deletes every processed whatsapp file when done and only repaired files remain. By default it is false.

Example:

WhatsAppJpegRepair -deleteWhatsAppFiles=true

this call will use default source and destination folders (check -srcPath and -destPath options above), will preserve repaired file modification date/times (check -useCurrentModificationDateTime option above), will remove all processed source whatsapp files and will wait until user presses Enter to exit when all files are processed.

None of these options are mandatory. You can run the application without parameters, or set arbitrary set of parameters, default values will be applied for the rest.

Building the application from the source

  1. Download and install Go language support for your platform: https://golang.org/
  2. In the application project folder run the following command:
go build WhatsAppJpegRepair.go
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].