You can't recompress the file, it isn't compressed at the moment.
You don't mention what format your data is in so I'm assuming it is raw binary. If it isn't you should be able to convert it to raw binary easily.
The file should contain one byte per location in the 27C256 so it's length should be 32K (32768 bytes). You want to use 16K of that, starting from half way up, in other words the block from 16K to 32K, ignoring the part from 0 to 16K.
If your software lets you specify the addresses to program, all you have to do is tell it to use the top half of the data. If that isn't possible, try telling it to save the top half as a new file and then load it in as data for a 27C128.
Brian.