Кейбір танымал кескін пішімдері (мысалы, jpg) метадеректерді қамтуы мүмкін. Солардың бірі – айналу. Егер файлды графикалық редакторда жасасаңыз, содан кейін оны қарау құралында айналдырсаңыз және соңында QImage, QPicture немесе QPixmap сыныптарын пайдаланып қолданбаңызға жүктесеңіз, кескіннің бастапқы бағдарында жүктелгенін көресіз. Бұл бағдармен сурет файлда сақталады. Бұл ретте кез келген графикалық редактор бұл суретті ағымдағы айналдырумен ашады. Мәселе қалаған бұрышқа бұрылу арқылы оңай түзетіледі. Бірақ жоғарыда аталған сыныптар оны санауға мүмкіндік бермейді.
Бұл мәселені шешу үшін бағдарламашылар мультимедиялық модульге жүгінеді (атап айтқанда, QMediaRecorder класы және оның metaData(const Qstring & key) әдісі. Бұл қате. QImageReader және transformation() әдісі бұл мәселені шешуге көмектеседі. .
QImageReader reader("filePath"); int rotor(0); switch( reader.transformation() ) { case QImageIOHandler::TransformationRotate90: rotor = 90; break; case QImageIOHandler::TransformationRotate180: rotor = 180; break; case QImageIOHandler::TransformationRotate270: rotor = 270; break; } QImage image = reader.read(); if( rotor ) { QTransform tr; tr.rotate(rotor); image = image.transformed(tr); } QLabel l; l.resize( image.size() ); l.setPixmap( QPixmap::fromImage(image) ); l.show();
Qt құжаттамасын егжей-тегжейлі зерттеу маған бұл шешімді табуға көмектесті. QImageWriter сыныбы арқылы метадеректерді пайдаланып файлды сақтауға болады.