Texture corruption on iOS?

When running my packaged build (.IPA) or through launching to device via editor, my iOS builds will incorrectly render one of my images. This is what I see on an iPhone 5 (iOS 9.1) and iPhone 6 + (iOS 9.3):

The image is initially a 1920x1080 image. I have tried importing it as .JPEG, .PNG and .TGA. This texture is the sole texture being output through the UMG widget.

The iPhone 5 runs at 1136x640 and the iPhone 6 + runs at 1920x1080.

At first I thought it might be due to the fact that the image is not a power of 2 resolution image, but other images that have been imported into the project do not suffer this problem. Here is additional information regarding the setup for this image:


It shows DXT1 in the above image, but I have also previously tried setting the image to group to UI and having it at compression DXT1/5 (default).

This is from the Get Info in OS X regarding the image before importing it in:


What’s interesting is that this does not happen on an Android phone running Android 4.4, despite using the exact same settings. Are there any steps I can take to remedy this? Is it a packaging issue or an error on my behalf?

In the end, it was a power of 2 issue. Embedding the image into a larger image of 2048x2048 proportions made for the image to be visible on iOS. My confusion came from glancing at other image resolutions and not realising they were still power of two, but not in tandem. For example, 1024x512 is still valid in iOS but 1024x768 is not. 2048x1024, 256x512 etc are all usable.

explains me how you did it please Sabun, I did not understand.

What I did was use a tool (GIMP in this case, but you can use Photoshop or Krita in the same way), and created a base image with a power of 2 resolution (for example 2048x2048).

Then I pasted in the original image I had that was not at a power of 2 resolution ( for example 1920x1080). I saved this new image and used it in UE4. So, it’s a 2048x2048 image with a 1920x1080 image embedded in it.

Then in UE4’s UI, I simply scaled the image up until only the embedded image could be seen (hiding the excess parts of the image). This is not the best way to approach this, but it is one quick solution. If you could instead adjust your image to be saved directly as a power of 2 resolution, then you would be better off.