首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存Mipmap文件

保存Mipmap文件
EN

Stack Overflow用户
提问于 2015-12-16 22:28:55
回答 1查看 262关注 0票数 0

所以,我几乎完成了创建mipmap的程序。它将成功上传您选择的图片,并创建该图像的mipmap,但现在最后一部分是我被困。

我现在希望用户能够保存他或她的mipmap,但我不确定如何保存。我希望他们能够将它保存到他们想要的任何地方,我感觉它需要一个拨号框,但是我只知道在打开项目时如何实现对话框,而不是保存它们。

到目前为止,我的代码如下:

代码语言:javascript
复制
from __future__ import division
from PyQt4 import QtCore, QtGui, QtOpenGL
from PyQt4.QtGui import * #Used to import QPixmap. DO NOT REMOVE.
from PyQt4.QtCore import * #Used to import Qt.KeepAspectRation. DO NOT REMOVE.
import sys, os
import mmCreator


class MyApp(QtGui.QMainWindow, mmCreator.Ui_MainWindow):
    def __init__(self, parent=None):
        super(MyApp, self).__init__(parent)
        self.setupUi(self)
        self.btnSelect.clicked.connect(self.select_image)
        self.btnConvert.clicked.connect(self.mipmap)
        self.btnDownload.clicked.connect(self.download)


    def select_image(self):
        self.origImage.setAlignment(QtCore.Qt.AlignCenter)
        self.origImage.clear()
        global image
        image = QtGui.QFileDialog.getOpenFileName(self,
                                              "Select Image",
                                              "",
                                              "Image File (*.jpg *.png *.gif)")
        global pixmap
        pixmap = QPixmap(image)
        scaledPixmap = pixmap.scaled(self.origImage.size(), Qt.KeepAspectRatio)
        self.origImage.setPixmap(scaledPixmap)
        self.origImage.show()


    def mipmap(self):
        self.mipMap.setAlignment(QtCore.Qt.AlignCenter)
        #Create scaled versions of the source image.
        pixmap = QPixmap(image)
        global mipmaps
        mipmaps = []
        #Version 1 goes up to 1/16 of original size.
        mipmaps.append(pixmap.scaledToWidth(pixmap.width() / 2))
        mipmaps.append(pixmap.scaledToWidth(pixmap.width() / 4))
        mipmaps.append(pixmap.scaledToWidth(pixmap.width() / 8))
        mipmaps.append(pixmap.scaledToWidth(pixmap.width() / 16))
        #Show the first mipmapped version of the image, at 75% label size.
        scaledMipMap = mipmaps[0].scaled(self.mipMap.size() * (3/4), Qt.KeepAspectRatio)
        self.mipMap.setPixmap(scaledMipMap)
        self.mipMap.show()

    def download():
        mipmaps.save('/path/to/file.png', 'PNG')

def main():
    app = QtGui.QApplication(sys.argv)
    form = MyApp()
    form.show()
    app.exec_()

if __name__ == '__main__':
    main()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-21 09:19:09

要打开/保存任何文档,有两个步骤:

  1. 将路径作为字符串获得,例如"/home/Documents/myImage.png"。获取路径的一种方法是在对话框中询问用户。 Qt提供了这样做的方法,其中之一是getSaveFileName()。来自文档: 这是一个方便的静态函数,它将返回用户选择的文件名。该文件不一定存在。

此方法返回文件名:它不保存任何内容。

  1. 使用路径打开或保存文档。 要加载映像,您使用了pixmap = QPixmap(imagePath) 要保存它,可以使用pixmap.save(imagePath) (文档)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34323349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档