jjzjj

Python PSD 图层?

coder 2023-08-26 原文

我需要编写一个 Python 程序来加载 PSD photoshop 图像,该图像有多个图层并输出 png 文件(每个图层一个)。 你能用 Python 做到吗?我试过 PIL,但似乎没有任何访问层的方法。帮助。 附言。编写我自己的 PSD 加载器和 png 编写器被证明太慢了。

最佳答案

使用 Gimp-Python? http://www.gimp.org/docs/python/index.html

那样您不需要 Photoshop,它应该可以在任何运行 Gimp 和 Python 的平台上运行。这是一个很大的依赖项,但是是免费的。

在 PIL 中这样做:

from PIL import Image, ImageSequence
im = Image.open("spam.psd")
layers = [frame.copy() for frame in ImageSequence.Iterator(im)]

编辑:好的,找到解决方案:https://github.com/jerem/psdparse

这将允许您使用 python 从 psd 文件中提取图层,而无需任何非 python 内容。

关于Python PSD 图层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759459/

有关Python PSD 图层?的更多相关文章

  1. javascript - 为什么 Chrome 需要 12 秒来执行更新图层树? - 2

    我有一个相对不复杂的ASP.Net应用程序,它偶尔会在层中显示一strip有阴影的警告消息,以及一个用于关闭通知的按钮。此代码多年来一直运行良好。最近,我收到用户的提示,说响应速度非常慢。他们的体验是页面完全没有响应,当他们点击[确定]按钮时,很长一段时间都没有任何反应。当我录制时间轴时,我可以看到导致网络服务器往返的原始时间,并且我可以看到来自网络服务器的响应。我还可以看到作为响应结果运行的所有Javascript代码。对于应用程序而言,交易已经结束,而对于Javascript而言,交易也已经结束。我们需要做的就是等待用户点击[OK]按钮,我们将关闭通知弹出窗口。这就是“卡住”发生的

  2. javascript - 在 OpenLayers (KML) 网络链接自动刷新中刷新/重绘图层 - 2

    TLDR我想刷新计时器上的图层,以便绘制新的kml数据(如更新链接/网络链接)到目前为止,我已经尝试过以下操作函数:functionRefreshKMLData(layer){layer.loaded=false;layer.setVisibility(true);layer.redraw({force:true});}设置函数的间隔:window.setInterval(RefreshKMLData,5000,KMLLAYER);图层本身:varKMLLAYER=newOpenLayers.Layer.Vector("MYKMLLAYER",{projection:newOpenLa

  3. javascript - 基于缩放级别显示 WMS 图层 - 2

    我整天都在做这个,老实说,我没有主意了。我有一些WMS层,我想根据当前的缩放级别显示/不显示。是的,我已经阅读了API文档,它们似乎一如既往地清晰,但我遵循了所有建议,但没有得到想要的结果:(这是我查看的来源之一:http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels然后更糟糕的是,我发现如果您有一个在加载时显示的OpenStreetMap基础层,它似乎会限制您对map的numZoomLevels的控制,这正是我所需要的,因为我确实想将其用作我的加载基础层...所以我的问题是:我做错了什么?在加载时使用OpenStreetMap基

  4. javascript - Google Map KML 图层 - 点击事件返回 ZERO_RESULTS - 2

    我正在处理GooglemapKML图层点击事件。我正在使用这段代码:functioninitialize(){varmapOptions={center:newgoogle.maps.LatLng(41.875696,-87.624207),zoom:11,mapTypeId:google.maps.MapTypeId.ROADMAP};varmap=newgoogle.maps.Map(document.getElementById("map_canvas"),mapOptions);varctaLayer=newgoogle.maps.KmlLayer('https://sites

  5. javascript - 如何在具有纬度和经度的图层上显示轨迹 - 2

    我只是想在我的map上显示一条轨迹我试过如下但问题是我不想从GPX文件加载图层中的轨迹点(因为我不想从我得到的坐标生成文件从GPS设备编程)有没有办法从经度和纬度添加轨道层//AddtheLayerwiththeGPXTrackvarlgpx=newOpenLayers.Layer.Vector("Cartrack",{strategies:[newOpenLayers.Strategy.Fixed()],protocol:newOpenLayers.Protocol.HTTP({url:"testTrack.GPX",format:newOpenLayers.Format.GPX()

  6. javascript - 在 Extendscript 中折叠或展开图层集 - 2

    我创建了一个扩展脚本,可以自动为游戏的Assets纹理创建图层集。创建层集后,该集默认展开。我希望图层集折叠起来,如下图所示。我只留下要扩展的漫反射层。其余的都关闭了。我已经搜索了Adob​​e关于如何执行此操作的引用资料,但找不到任何内容。如何折叠图层集? 最佳答案 正如神秘嘉宾先生所说,不幸的是你不能折叠一个特定的组,但你可以折叠所有的组。已接受答案的链接已失效,因此我将在此处发布解决方案:varidcollapseAllGroupsEvent=stringIDToTypeID("collapseAllGroupsEvent")

  7. javascript - 如何删除 leaflet.draw 中的绘图层? - 2

    在使用绘图工具在自定义map上绘制其中一个形状后,使用leaflet.draw.js使用leaflet.js。我有一个弹出的表格,上面写着保存或取消。如果用户按下取消,那么我希望删除绘图。例如,我正在绘制一个矩形。这是我目前的来源map.on('draw:created',function(e){varlayer=e.layer;vartype=e.layerType;$("#add-drawing").fadeIn(500);featureGroup.addLayer(e.layer);//Addsrectangle$("a.cancelD").on("click",function

  8. javascript - Openlayers 在 OpenStreetMaps 图层上圈出多边形 - 2

    我正在尝试创建一个具有定义中心的圆并在其上放置一个图标标记。如果我使用图像而不是OpenLayers.Geometry.Polygon.createRegularPolygon,代码就可以工作。我无法解决它。在这里你可以找到我的代码:OpenLayersExamplemap=newOpenLayers.Map("mapdiv");map.addLayer(newOpenLayers.Layer.OSM());epsg4326=newOpenLayers.Projection("EPSG:4326");//WGS1984projectionprojectTo=map.getProject

  9. javascript - 如何在不重新创建 map 的情况下使用 Knockout.js 切换 KML 图层? - 2

    我已经创建了一个Knockout绑定(bind),以便能够使用Googlemap切换KML层,但该解决方案似乎有点慢且“闪烁”。如何避免在每次切换时重新创建map和图层?可以找到正在运行的演示herevarViewModel=function(){varself=this;self.mapOptions={center:newgoogle.maps.LatLng(60.390791,5.306396),zoom:2};self.levels=[{text:"Type1",countries:ko.observableArray(['https://dl.dropbox.com/u/28

  10. javascript - 如何使用 Vuelayers 与 GeoServer 提供的 WMS 切片图层进行交互? - 2

    我正在使用Vuelayers开发网络map应用程序库,它是具有OpenLayers强大功能的WebmapVue组件。我的模板中有以下代码:........在数据对象中我有以下属性:layers:[{id:'sections',title:'Sections',cmp:'vl-layer-tile',visible:true,source:{cmp:'vl-source-wms',url:'http://localhost:8080/geoserver/sager/wms',layers:'sections',tiled:true,format:'image/png',serverTyp

随机推荐