Once a BTC is sent from an address, the public key is revealed, which means you can derive any form you want.
Can you describe your problem in a bit more detail?
Here is the problem, use case BTC/bitAsset gateway:
* User imports their bitcoin wallet into bitshares
* Their wallet contains a mix of compressed/uncompressed private keys (don't ask me why)
* Bitshares converts all imported private keys into
compressed public keys
* Bitassets sent to the gateway are converted to bitcoin and sent to the bitcoin address derived from the bitshares public key, which is always compressed
* The user will/will not receive the bitcoins depending on whether they imported uncompressed/compressed private keys
If you approach this from the other angle and ask the user to import their bitshares private key into their bitcon wallet, they will have to fund the particular address generated from that private key and then only send funds from that address in order for the gateway to forward bitAssets to the correct bitshares account.