ESRIジャパン株式会社

ArcPy (ArcMap): レイヤーの透過設定を確認する

ナレッジ ID: 23440 | 公開日: 2023年5月29日 | 更新日: 2026年8月26日

概要

レイヤーの透過度を取得するためのサンプル コードを紹介いたします。

サンプル コード 1

レイヤーの数分透過度を取得する方法です。

import arcpy
mxd = arcpy.mapping.MapDocument("current")
lyrs = arcpy.mapping.ListLayers(mxd)
# レイヤーの数分ループ
for lyr in lyrs:
    # 透過度を取得
    trans = lyr.transparency
    print  (lyr.name + u"の透過度は" + str(trans) + u"です。")

サンプル コード 2

印刷またはエクスポ―ト時に問題を起こす可能性のあるレイヤーを特定するためのサンプル コードです。
こちらのヘルプ から抜粋したものです。

import arcpy

def DetectRasterization():
  mxd = arcpy.mapping.MapDocument("CURRENT")
  df_list = arcpy.mapping.ListDataFrames(mxd)
  foundRasterization = False
  noneFoundMsg = "No rasterizing layers were detected."
  for df in df_list:
    lyr_list = arcpy.mapping.ListLayers(mxd, data_frame=df)
    for lyr in lyr_list:
      if lyr.isRasterizingLayer or lyr.supports("BRIGHTNESS"):
        foundRasterization = True
        if lyr.isGroupLayer and lyr.transparency > 0:
          print "In data frame '" + df.name + "', the group layer '" + 
                   lyr.longName + "' is a rasterizing layer:r",
          print "tVisibility is " + str(lyr.visible) + ".n" + 
                "tTransparency is " + str(lyr.transparency) + " percent.n"
        elif not lyr.isGroupLayer:
          print "In data frame '" + df.name + "', the layer '" + 
                   lyr.longName + "' is a rasterizing layer:r",
          if lyr.transparency > 0:
            print "tVisibility is " + str(lyr.visible) + ".n" + 
                  "tTransparency is " + str(lyr.transparency) + " percent.n"
          else:
            print "tVisibility is " + str(lyr.visible) + ".n" + 
                  "tTransparency is 0 percent, but the layer may be an" + 
                  "traster layer or contain rasterizing symbology suchn" + 
                  "tas bitmap picture symbols.n"
      del lyr
    del lyr_list
    del df
  if not foundRasterization:
    print noneFoundMsg
  del df_list
  del mxd

DetectRasterization()

こちらのサンプルはあくまでもコーディングの見本であり、実行時に発生したエラーの対処方法につきましては、サポート対象外とさせていただきます。また、操作方法やソースコードに関するご質問は別途有償の開発者サポート契約にてご対応させていただきます。なお、コードを実行して生じたいかなる損害についても弊社では責任を負いかねます。

このナレッジはお役に立ちましたか?

はい
いいえ
フィードバックをいただきありがとうございます!