QGISのプラグイン作成 スクリーンショットサンプル(ファイル毎)
はじめに
このサンプルは、フォルダ内に格納されているshpを表示して、そのスクリーンショットを画像保存するプラグインです。
使い方
ここからzipファイルをダウンロードしてインストールします。インストールできたら、screenshot_sample.pyの53、54行目を適当に編集してください。
self.inputdir = 'shpが格納されているフォルダパス' self.outputdir = '画像の保存先のファイルパス'
設定したらプラグインを再読み込みして実行してください。読み込んだshpのレイヤ全体を表示してスクリーンショットが撮られ、保存先に画像が保存されます。
コード
class ScreenShotSample(QgsMapTool): def exportMap(self): self.canvas.saveAsImage(self.outputdir + '\{}.png'.format(self.layername) ) QgsProject.instance().removeMapLayer(qgis.utils.iface.activeLayer()) if len(self.filelist) > self.count: self.setNextFeatureExtent() else: self.canvas.mapCanvasRefreshed.disconnect( self.exportMap ) def setNextFeatureExtent(self): self.layername, ext = os.path.splitext(os.path.basename(self.filelist[self.count])) self.layer = self.iface.addVectorLayer(self.filelist[self.count], self.layername, "ogr") self.iface.zoomToActiveLayer() self.count += 1 def start(self): self.ext = '.shp' self.inputdir = 'shpが格納されているフォルダ' self.outputdir = '画像の保存先フォルダ' self.filelist = glob.glob(self.inputdir + "\*" + self.ext) if len(self.filelist) == 0: return self.count = 0 self.canvas.mapCanvasRefreshed.connect( self.exportMap ) self.setNextFeatureExtent() ~略~
24行目 21行目で指定したフォルダ内のshpファイルのパスを取得して...
14、15行目 マップにファイルを全体表示しています。
4行目 表示が完了したら、スクリーンショットを保存します。
5行目 撮影終わったので、マップからレイヤを削除して...
7行目 次のファイルを読みに行きます。
ソース全文
最後までご覧頂き、ありがとうございました