[Development] The behaviour of Image / image provider are different from 5.5.1 to 5.6 in iOS
ekke
ekke at ekkes-corner.org
Mon Apr 11 14:47:09 CEST 2016
perhaps devicePixelRatio is 3.0 - this would have the effect to get 170.666
http://doc.qt.io/qt-5/qimage.html#setDevicePixelRatio
ekke
Am 11.04.16 um 14:36 schrieb Federico Buti:
> 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
> <mailto:xbenlau at gmail.com>> wrote:
>
>
>
> On 11 April 2016 at 20:19, ekke <ekke at ekkes-corner.org
> <mailto: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
>> <mailto: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:
>>>
>>> QImageQCImageProvider::requestImage(constQString&id,QSize*size,c
>>> onstQSize&requestedSize)
>>> {
>>> Q_UNUSED(requestedSize);
>>> QCImageLoader*loader=QCImageLoader::instance();
>>> QImageresult;
>>> if(loader->contains(id)){
>>> result=loader->image(id);
>>> *size=result.size();
>>> }
>>> returnresult;
>>> }
>>> 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 <mailto: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/34e09fd7/attachment.html>
More information about the Development
mailing list