2013-02-07 55 views
1

所以,我試圖想出解決我遇到的問題的最佳方法。用於腳本的網頁服務器上的Photoshop

問題是,我爲我的工作生成了很多網站,而且隨着CSS3和HTML5自我介紹功能強大,我想從我的網站中幾乎消除所有圖像。對於按鈕圖標和各種其他的東西,我有一個精靈圖像,所有的圖標,我只是根據我需要的圖標轉移。我需要做的是在Web服務器上動態重新着色此圖像,以便我不必打開Photoshop並手動重新着色圖標。

我已經做了一些研究,並且我遇到過的唯一一個有機會以我希望它爲Photoshop的JavaScript的方式工作。我的問題是,一旦我編寫了我的腳本並重新繪製了我的圖標圖像,它是否可以在服務器上完成,例如,當用戶單擊按鈕時,圖像會重新着色並保存到服務器上?

這是否需要在服務器上安裝Photoshop?這甚至有可能嗎?

+5

聽起來像是http://imagemagick.org的工作 – jthomas

+1

所以......當用戶點擊一個頁面元素,你想發佈到服務器,啓動一個圖像編輯應用程序(像Photoshop一樣大?),編輯圖像,保存新文件,並將新圖像返回到瀏覽器進行顯示?這不僅僅是在客戶端上有一個精靈圖像,可以重新設計以顯示不同的圖像? – David

+0

那麼,我仍然想知道最好的選擇是什麼。最終的想法是能夠通過改變一些變量來創建一個全新的網站(具有相同的佈局等,只是不同的顏色/標識)。 – andyfurniss

回答

0

Photoshop僅適用於Mac或Windows,如您所知。

據我所知,你不能在Windows Server上安裝Photoshop。 (我自己用CS4試了一下 - 也許它和CS6的知識一起工作)。但是你可以在防火牆後面的Win 7機器上安裝PS。

如果您使用Windows機器,則可以使用COM進行自動化。我試了一下,它運行良好。

我在中等流量的網頁上做了一個類似的事情,你用兩臺Mac和PS Javascript(Imagemagick,PIL等不適合我,因爲工作太複雜)所以我不同意Michaels的回答。第一件事:考慮緩存圖像並使用低流量時間來計算將來可能需要的圖像。這真的讓我更容易。

第二件事:試驗圖像尺寸,dpi等。圖像越小 - 過程越快。

我的工作流程是:

  • web服務器寫入數據庫(「嘿,我需要有名稱的新形象‘路徑/ bla.jpg’)如果圖像
  • 一個Ajax調用檢查。如果沒有 - 顯示「正在處理你的請求佔位符」
  • 在防火牆後面的mac上的無限循環中運行的腳本正在檢查是否需要新映像
  • 如果它發現它正在更新數據庫(「Mac One將計算這項工作」)。這可以防止每個Mac都會使用t他新的形象。
  • 腳本正在調用Photoshop。 Photoshop正在計算圖像。
  • 該腳本將圖像(我使用rsync)上傳到網絡服務器。
  • ajax-call看到新圖像並將其呈現給用戶。
  • Mac上的腳本更新數據庫「image successfully created」。

您將需要一些錯誤處理邏輯等。

+0

我剛剛將整個CC Suite安裝到Windows Server 2012上......只需添加到線程,謝謝 –

0

這個問題一直困擾着我多年..我一直希望有一個Photoshop服務器,我可以通過一個API來說話,並完成任務..好..我已經建立了更緊密的東西。 ..使用生成器插件我可以連接思想網絡套接字和在Photoshop中注入JavaScript ..從技術上說,你可以做任何事情,可以使用photoshop scripting guide. ...(包括操縱現有的PDS)

此庫https://github.com/Milewski/generator-exporter導出所有標記的圖層作爲其所需的格式... 此代碼可以在服務器上運行..使用nodejs

import { Generator } from 'generator-exporter' 
import * as glob from 'glob' 
import * as path from 'path' 

const files = glob.sync(
    path.resolve(__dirname, '**/*.psd') 
); 

const generator = new Generator(files, { 
    password: '123456', 
    generatorOptions: { 
     'base-directory': path.resolve(__dirname, 'output') 
    } 
}) 


generator.start() 
     .then(() => console.log('Here You Could Grab all the generated images and send back to client....')); 

但是,我不會建議使用這種用於太多併發任務的重度使用...因爲它需要在本地安裝photoshop ... Photoshop GUI將被初始化..此過程相當緩慢。所以它不適合繁忙的工作流程。

相關問題