Warning, /multimedia/kid3/src/qml/script/ResizeAlbumArt.qml is written in an unsupported language. File is not indexed.

0001 /**
0002  * \file ResizeAlbumArt.qml
0003  * Resize embedded cover art images which are larger than 500x500 pixels.
0004  * The maximum size can be adapted by changing the maxPixels variable.
0005  *
0006  * \b Project: Kid3
0007  * \author Urs Fleisch
0008  * \date 28 Feb 2015
0009  *
0010  * Copyright (C) 2015-2017  Urs Fleisch
0011  *
0012  * This program is free software; you can redistribute it and/or modify
0013  * it under the terms of the GNU Lesser General Public License as published by
0014  * the Free Software Foundation; version 3.
0015  *
0016  * This program is distributed in the hope that it will be useful,
0017  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0018  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0019  * GNU Lesser General Public License for more details.
0020  *
0021  * You should have received a copy of the GNU Lesser General Public License
0022  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
0023  */
0024 
0025 import Kid3 1.1
0026 
0027 Kid3Script {
0028   onRun: {
0029     var maxPixels = 500
0030 
0031     function doWork() {
0032       if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
0033         var data = app.getPictureData()
0034         if (script.getDataSize(data) !== 0) {
0035           var formats = ["jpg", "png", "webp"]
0036           for (var fmt in formats) {
0037             var format = formats[fmt]
0038             var img = script.dataToImage(data, format)
0039             var imgProps = script.imageProperties(img)
0040             if ("width" in imgProps) {
0041               var width = imgProps.width, height = imgProps.height
0042               if (width > maxPixels || height > maxPixels) {
0043                 if (width >= height) {
0044                   width = maxPixels; height = -1
0045                 } else {
0046                   width = -1; height = maxPixels
0047                 }
0048                 img = script.scaleImage(img, width, height)
0049                 imgProps = script.imageProperties(img)
0050                 data = script.dataFromImage(img, format)
0051                 if (script.getDataSize(data) !== 0) {
0052                   app.setPictureData(data)
0053                   console.log("Resized image to %1x%2 in %3".
0054                               arg(imgProps.width).arg(imgProps.height).
0055                               arg(app.selectionInfo.fileName))
0056                 }
0057               }
0058               break
0059             }
0060           }
0061         }
0062       }
0063       if (!nextFile()) {
0064         if (isStandalone()) {
0065           // Save the changes if the script is started stand-alone, not from Kid3.
0066           app.saveDirectory()
0067         }
0068         Qt.quit()
0069       } else {
0070         setTimeout(doWork, 1)
0071       }
0072     }
0073 
0074     firstFile()
0075     doWork()
0076   }
0077 }