[Development] The behaviour of Image / image provider are different from 5.5.1 to 5.6 in iOS

Federico Buti fed.buti at gmail.com
Mon Apr 11 14:36:34 CEST 2016


Hi Ben,

I've solved the issue by multiplying width/height to
qApp->devicePixelRatio(). That should be 3 on iPhone 6 and should provide
the correct result.
I'm not sure if that's a bug or it is intended behaviour and I actually
didn't investigate the issue a lot since I was just testing stuff.

Hope someone else can confirm it's a bug or expected.

Cheers,
F.

On 11 April 2016 at 14:28, Ben Lau <xbenlau at gmail.com> wrote:

>
>
> On 11 April 2016 at 20:19, ekke <ekke at ekkes-corner.org> wrote:
>
>> Am 11.04.16 um 14:07 schrieb Ben Lau:
>>
>>
>> On 11 April 2016 at 19:59, ekke <ekke at ekkes-corner.org> wrote:
>>
>>> Am 11.04.16 um 12:38 schrieb Ben Lau:
>>>
>>> Hi,
>>>
>>> I am writing an image provider that read all the images to memory at
>>> startup. And I found that the behaviour is different from 5.5.1 to 5.6 in
>>> iOS. Seems that it is undocumented. I wonder is it an expected behaviour or
>>> a bug?
>>>
>>> That is the example project:
>>> https://github.com/benlau/quickcross/tree/master/tests/imageprovider
>>>
>>> That is the code of my image provider:
>>>
>>> QImage QCImageProvider::requestImage(const QString &id, QSize *size, c
>>> onst QSize &requestedSize)
>>>
>>> {
>>>
>>>     Q_UNUSED(requestedSize);
>>>
>>>     QCImageLoader* loader = QCImageLoader::instance();
>>>
>>>     QImage result;
>>>
>>>     if (loader->contains(id)) {
>>>
>>>         result = loader->image(id);
>>>
>>>         *size = result.size();
>>>
>>>     }
>>>
>>>     return result;
>>>
>>> }
>>>
>>> Code to display image:
>>>
>>> Image {
>>>
>>>   id: image
>>>
>>>   source: "image://arts/Lenna.png" // An 512x512 image
>>>
>>> }
>>>
>>> In Qt 5.5.1 with iPhone6, the property of image will be set to:
>>>
>>> width: 512
>>>
>>> height: 512
>>>
>>> sourceSize: Qt.size(512,512)
>>>
>>> However, in Qt 5.6 with iPhone6, it becomes:
>>>
>>> width: 170.66666
>>>
>>> height: 170.66666
>>>
>>> sourceSize: Qt.size(512,512)
>>>
>>> The display size of image is different.
>>>
>>>
>>> now from Qt 5.6 HighDPI is supported for all platforms.
>>> iPhone has scaling factor 3
>>>
>>> 170.66666 * 3 = 512
>>>
>>>
>>> ekke
>>>
>>>
>> But Qt 5.5 on iOS also support HighDPI. Their result are different.
>>
>>
>> have you tried to explicitely set
>>
>> QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
>>
>>
>> ekke
>>
>
> I have tried to set / not-set this line. It don't make any different.
>
>
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20160411/2fbd0d9d/attachment.html>


More information about the Development mailing list