下一代Photoshop将不再支持Windows XP

Adobe宣布其下一代Photoshop将不再支持Windows XP、Windows 7及更低版本的操作系统,只供Windows 7及以上版本的用户使用。原因是现代性能敏感型软件需要现代硬件图形接口,而Windows XP无法提供此类接口。Adobe将继续为当前的CS6版本提供漏洞补丁修复,并推出Creative Cloud订阅选项,包含CS7最新功能,但Windows XP用户将无法享受这些新功能。

据国外媒体报道,Adobe今天表示,下一代Photoshop将不再支持Windows XP,Windows 7或更高版本的用户才能享用。

Adobe产品经理汤姆·霍加蒂(Tom Hogarty said)在博文中表示,“Photoshop团队希望提前通知人们,Photoshop CS6 (13.0)将会是支持Windows XP系统的最后一个Photoshop主要版本。”

至于原因,他指出,现代性能敏感型软件需要现代硬件图形接口,尤其是可充分利用图形处理器性能的接口,而这点正是Windows XP所欠缺的。

他说,Adobe将会为当前的CS6版本提供漏洞补丁修复。Adobe为整个Creative Suite 6 和其它软件增加了一个全新的Creative Cloud订阅选项,订阅用户需使用一年时间,每月支付50美元,享有的特权之一就是获得CS7最新出炉的功能。霍加蒂表示,那些新功能也将不会面向 Windows XP用户。

Adobe相关产品Lightroom的当前版本已经停止了对Windows XP的支持

下一代Photoshop将不再支持Windows XP
各操作系统使用率趋势图

目前全球仍有大量的Windows XP用户,但使用Windows 7的用户也正不断增长。Net Applications监测的互联网使用数据显示,8月Windows 7用户刚刚超过Windows XP成为世界上使用率最高的PC操作系统。

多年以来微软也一直在努力推动人们使用更新的系统版本,近期则在积极推广即将正式推出的Windows 8。

另外,谷歌近日也宣布Google Apps将不再支持IE8。IE8是Windows XP用户可以使用的最高IE版本,Windows Vista和Windows 7均可使用IE9,而Windows 8则预装IE10。

不过谷歌并没完全抛弃Windows XP用户,他们还能够通过 Firefox、Opera、Chrome或者为IE安装谷歌Chrome Frame插件来使用Google Apps。

// Photoshop文本图层管理工具 - 超强识别版 // 增强文本图层识别能力,支持各种复杂情况 // 主执行函数 function main() { // 检查是否有活动文档 if (!app.documents.length) { alert("没有打开的Photoshop文档!请先打开一个PSD文件。"); return; } // 创建UI界面 var dialog = new Window("dialog", "PS文本工具-超强识别版"); dialog.orientation = "column"; dialog.alignChildren = ["center", "top"]; dialog.spacing = 10; dialog.margins = 16; // 标题 var title = dialog.add("statictext", undefined, "文本图层管理工具"); title.graphics.font = ScriptUI.newFont("Arial", "BOLD", 16); // 按钮组 var btnGroup1 = dialog.add("group"); btnGroup1.orientation = "row"; var selectAllTextBtn = btnGroup1.add("button", undefined, "选择所有文本"); selectAllTextBtn.size = [140, 30]; var selectTextLayersBtn = btnGroup1.add("button", undefined, "选择文本图层"); selectTextLayersBtn.size = [140, 30]; var btnGroup2 = dialog.add("group"); btnGroup2.orientation = "row"; var pasteStyleBtn = btnGroup2.add("button", undefined, "粘贴样式"); pasteStyleBtn.size = [140, 30]; var hideSelectedBtn = btnGroup2.add("button", undefined, "隐藏选中"); hideSelectedBtn.size = [140, 30]; var btnGroup3 = dialog.add("group"); btnGroup3.orientation = "row"; var showAllBtn = btnGroup3.add("button", undefined, "显示全部"); showAllBtn.size = [140, 30]; var analyzeBtn = btnGroup3.add("button", undefined, "分析文档"); analyzeBtn.size = [140, 30]; // 状态显示 var statusText = dialog.add("statictext", undefined, "就绪。请选择操作。"); statusText.size = [300, 40]; // 按钮事件处理 selectAllTextBtn.onClick = function() { statusText.text = "正在选择所有文本项..."; try { var startTime = new Date().getTime(); var result = enhancedSelectAllText(); var endTime = new Date().getTime(); statusText.text = "完成!选择了 " + result.count + " 个文本项 (" + (endTime - startTime) + "ms)"; if (result.skipped > 0) { statusText.text += "\n跳过了 " + result.skipped + " 个无法访问的图层"; } } catch (e) { statusText.text = "错误: " + e.message; } }; selectTextLayersBtn.onClick = function() { statusText.text = "正在选择文本图层..."; try { var startTime = new Date().getTime(); var result = enhancedSelectTextLayers(); var endTime = new Date().getTime(); statusText.text = "完成!选择了 " + result.count + " 个文本图层 (" + (endTime - startTime) + "ms)"; if (result.skipped > 0) { statusText.text += "\n跳过了 " + result.skipped + " 个无法访问的图层"; } } catch (e) { statusText.text = "错误: " + e.message; } }; pasteStyleBtn.onClick = function() { statusText.text = "正在粘贴样式..."; try { var startTime = new Date().getTime(); var result = enhancedPasteStyle(); var endTime = new Date().getTime(); statusText.text = "完成!粘贴到 " + result.count + " 个图层 (" + (endTime - startTime) + "ms)"; if (result.skipped > 0) { statusText.text += "\n跳过了 " + result.skipped + " 个无法访问的图层"; } } catch (e) { statusText.text = "错误: " + e.message; } }; hideSelectedBtn.onClick = function() { statusText.text = "正在隐藏选中图层..."; try { var startTime = new Date().getTime(); var count = fastHideSelected(); var endTime = new Date().getTime(); statusText.text = "完成!隐藏了 " + count + " 个图层 (" + (endTime - startTime) + "ms)"; } catch (e) { statusText.text = "错误: " + e.message; } }; showAllBtn.onClick = function() { statusText.text = "正在显示所有图层..."; try { var startTime = new Date().getTime(); var count = fastShowAll(); var endTime = new Date().getTime(); statusText.text = "完成!显示了 " + count + " 个图层 (" + (endTime - startTime) + "ms)"; } catch (e) { statusText.text = "错误: " + e.message; } }; analyzeBtn.onClick = function() { statusText.text = "正在分析文档结构..."; try { var result = analyzeDocument(); statusText.text = "文档分析完成:\n总图层: " + result.total + "\n文本图层: " + result.textLayers + "\n图层组: " + result.groups + "\n其他图层: " + result.other; } catch (e) { statusText.text = "错误: " + e.message; } }; var closeBtn = dialog.add("button", undefined, "关闭"); closeBtn.onClick = function() { dialog.close(); }; // 显示对话框 dialog.center(); dialog.show(); } // 增强版文本图层识别函数 function enhancedFindTextLayers(includeNested) { var doc = app.activeDocument; var textLayers = []; var skippedLayers = 0; // 递归查找函数 function findLayers(layerCollection) { for (var i = 0; i < layerCollection.length; i++) { try { var layer = layerCollection[i]; // 检查是否是图层组 if (layer.typename === "LayerSet" && includeNested) { // 递归查找组内的图层 findLayers(layer.layers); continue; } // 检查是否是普通图层 if (layer.typename === "ArtLayer") { // 方法1: 检查kind属性 if (layer.kind == LayerKind.TEXT) { textLayers.push(layer); continue; } // 方法2: 检查是否有textItem属性 try { if (layer.textItem && typeof layer.textItem.contents !== "undefined") { textLayers.push(layer); continue; } } catch (e) { // 忽略错误,继续尝试其他方法 } // 方法3: 检查图层名称是否包含"text"或"txt"(不区分大小写) var layerName = layer.name.toLowerCase(); if (layerName.indexOf("text") !== -1 || layerName.indexOf("txt") !== -1) { textLayers.push(layer); continue; } // 方法4: 检查图层是否可编辑(文本图层通常可编辑) try { if (layer.editable) { // 进一步检查是否有文本内容 try { if (layer.textItem && layer.textItem.contents !== "") { textLayers.push(layer); continue; } } catch (e) { // 忽略错误 } } } catch (e) { // 忽略错误 } } } catch (e) { // 无法访问的图层,增加计数 skippedLayers++; } } } // 开始查找 findLayers(doc.layers); return { layers: textLayers, skipped: skippedLayers }; } // 增强版选择所有文本 function enhancedSelectAllText() { var doc = app.activeDocument; // 使用增强查找函数(包括嵌套图层) var result = enhancedFindTextLayers(true); var textLayers = result.layers; // 如果没有找到文本图层,直接返回 if (textLayers.length === 0) { alert("未找到文本图层!"); return {count: 0, skipped: result.skipped}; } // 先取消所有选择 try { for (var i = 0; i < doc.layers.length; i++) { doc.layers[i].selected = false; } } catch (e) { // 忽略错误 } // 选择所有文本图层 for (var i = 0; i < textLayers.length; i++) { try { textLayers[i].selected = true; } catch (e) { result.skipped++; } } // 设置活动图层 if (textLayers.length > 0) { try { doc.activeLayer = textLayers[0]; } catch (e) { // 忽略错误 } } return {count: textLayers.length, skipped: result.skipped}; } // 增强版选择文本图层(仅顶层) function enhancedSelectTextLayers() { var doc = app.activeDocument; // 使用增强查找函数(不包括嵌套图层) var result = enhancedFindTextLayers(false); var textLayers = result.layers; // 如果没有找到文本图层,直接返回 if (textLayers.length === 0) { alert("未找到文本图层!"); return {count: 0, skipped: result.skipped}; } // 先取消所有选择 try { for (var i = 0; i < doc.layers.length; i++) { doc.layers[i].selected = false; } } catch (e) { // 忽略错误 } // 选择所有文本图层 for (var i = 0; i < textLayers.length; i++) { try { textLayers[i].selected = true; } catch (e) { result.skipped++; } } // 设置活动图层 if (textLayers.length > 0) { try { doc.activeLayer = textLayers[0]; } catch (e) { // 忽略错误 } } return {count: textLayers.length, skipped: result.skipped}; } // 增强版粘贴样式 function enhancedPasteStyle() { // 检查是否有复制的样式 if (!app.activeDocument.activeLayer) { alert("请先复制一个图层的样式!"); return {count: 0, skipped: 0}; } var doc = app.activeDocument; // 使用增强查找函数(包括嵌套图层) var result = enhancedFindTextLayers(true); var textLayers = result.layers; // 保存当前活动图层 var originalLayer = doc.activeLayer; var processed = 0; var skipped = 0; // 粘贴样式到每个文本图层 for (var i = 0; i < textLayers.length; i++) { try { doc.activeLayer = textLayers[i]; app.executeAction(stringIDToTypeID("pasteStyleAll"), undefined, DialogModes.NO); processed++; } catch (e) { skipped++; } } // 恢复原始活动图层 try { doc.activeLayer = originalLayer; } catch (e) { // 忽略错误 } return {count: processed, skipped: skipped}; } // 超高效隐藏选中图层 function fastHideSelected() { var doc = app.activeDocument; var layers = doc.layers; var hidden = 0; for (var i = 0; i < layers.length; i++) { try { if (layers[i].selected) { layers[i].visible = false; hidden++; } } catch (e) { // 忽略错误,继续处理 } } return hidden; } // 超高效显示所有图层 function fastShowAll() { var doc = app.activeDocument; var layers = doc.layers; var shown = 0; for (var i = 0; i < layers.length; i++) { try { if (!layers[i].visible) { layers[i].visible = true; shown++; } } catch (e) { // 忽略错误,继续处理 } } return shown; } // 文档分析功能 function analyzeDocument() { var doc = app.activeDocument; var totalLayers = 0; var textLayers = 0; var layerGroups = 0; var otherLayers = 0; // 递归分析函数 function analyzeLayers(layerCollection) { for (var i = 0; i < layerCollection.length; i++) { try { var layer = layerCollection[i]; totalLayers++; if (layer.typename === "LayerSet") { layerGroups++; // 递归分析组内的图层 analyzeLayers(layer.layers); } else if (layer.typename === "ArtLayer") { // 检查是否是文本图层 try { if (layer.kind == LayerKind.TEXT) { textLayers++; } else { otherLayers++; } } catch (e) { // 使用备用方法检查文本图层 try { if (layer.textItem && typeof layer.textItem.contents !== "undefined") { textLayers++; } else { otherLayers++; } } catch (e2) { otherLayers++; } } } } catch (e) { // 忽略无法访问的图层 } } } // 开始分析 analyzeLayers(doc.layers); return { total: totalLayers, textLayers: textLayers, groups: layerGroups, other: otherLayers }; } // 启动脚本 try { main(); } catch (e) { alert("脚本初始化错误: " + e.message); } 换种语法重新写
09-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值