Reimond Hill
Reimond Hill

Reputation: 4760

UIImagePNGRepresentation loses its transparency

I am working on an app that connects multiple devices using the networking protocol UPnP.

Among others, I can exchange images and they are files stored inside a folder in my project folder.

For sending the images I am given predefined methods.

if let imageRequested = UIImage(named:"logo.png"){

    let fileType = "image/png"
    let pngRepresentation = [UInt8](UIImagePNGRepresentation(imageRequested)!)
    let fileSize = UInt32(pngRepresentation.count)

    writeBegin!(aWriterData, fileSize, fileType)
    aWriteResource!(aWriterData, pngRepresentation, fileSize)
    aWriteEnd!(aWriterData)

}

However, the receiver gets the image with black background when it is transparent. I know It is not a receiver issue because there is an Android version that sends the same images and they are received with transparency.

any ideas why?

Upvotes: 0

Views: 237

Answers (1)

Anton Rodzik
Anton Rodzik

Reputation: 791

UIImageJPEGRepresentation will convert the resulting image into a JPEG, which doesn't support transparency. Are you sure that you use UIImagePNGRepresentation, not UIImageJPEGRepresentation?

If you use UIImagePNGRepresentation - it's strange, it should work fine, could you provide more details?

Upvotes: 1

Related Questions