We'll look at possible causes, there are 3:
1 Image size reduced, file simply misses part of the data.
2 Image contains only part of the image data, often missing data is filled with zeros.
3 Corrupt data inside JPEG image data: Invalid markers that stop decoding of the JPEG.
Only in case 3 repair is an option. How can you tell what you have at hand and if you can repair the JPEG? And if you can, how?
JPEG-Repair can be downloaded from the DiskTuna website:
https://www.disktuna.com/jpgrepair-fix-and-repair-corrupt-jpeg-headers-and-invalid-markers/