Hi,
It is not the size in MB of the file which is the problem. It's the size height*width (the resolution if you will) of the image itself which is.
When GD ( the image library of PHP) loads the image in memory, it needs 8bits for each pixel.
Suppose you have a JPG image all white of 10000*10000 pixels. Its file size will be small because the JPG format will be able to compress it a lot. However, GD will roughly require 10000*10000*8 = 800 000 000 bits, or 800megabits, easily going over your PHP memory limit.
The fact that you're saying that the images are roughly the same size and that it works for some and not others would indicate that your images are not far from the threshold in terms of memory usage. So, increasing the memory_limit to 500M in your php.ini should help.
Now, this error message comes from HikaShop, as it does a check before asking GD to actually load the image.
The check is not accurate because there is no function in PHP to know the required memory for something before actually doing it.
So, what you can also do is to go in your PHPMyAdmin and open the hikashop_config table. There, add an entry with the namekey image_check_memory and the value 0
The check will be skipped when you try again. If it works, then the check is too heavy handed. If it doesn't, then you should now see the error message from PHP saying that you don't have enough memory.