代码太多了,放出部分源文件,有意者联系我,我的QQ/MSN/E-mail都是www@xiaogezi.cn
前端架构 v1.0.1(旧)版部分源代码:
复制内容到剪贴板
代码:
#target photoshop
app.bringToFront();
$.localize = true;
/*
程式名:扩展Photoshop之导出选区到图片并生成DIV+CSS(xhtml)代码;
Code By Linr Chen,My website http://www.xiaogezi.cn/
JavaScript File Name:xExport.jsx
*/
if (app.documents.length == 0)
{
var docRef = app.documents.add();
}
else
{
var docRef = app.activeDocument;
var obj = docRef.selection;
}
var okBtn = "确定";
var cleBtn = "取消";
var strTitle=" 图片到源代码 Image to HTML - Linr Studio";
var strButtonBrowse = localize("$$$/JavaScripts/ExportLayersToFiles/Browse=&Browse...");
var dlg;
/* 创建Win form 窗体 */
function createDlg(css,htm)
{
dlg = new Window("dialog",strTitle,[200,250,630,560],undefined);
dlg.orientation = 'column';
dlg.alignChildren = 'left';
dlg.toHTMLIDlbl = dlg.add( 'statictext', [10,12,55,30], 'DIV ID:', '');
dlg.toHTMLID = dlg.add( 'edittext', [56,10,220,30], '', {multiline:false, readonly:false} );
dlg.toHTMLbtn = dlg.add("button",[222,8,320,32],"生成DHTML...");
dlg.toHTMLpathlbl = dlg.add( 'statictext', [10,42,55,60], '文件名:', '');
dlg.toHTMLpath = dlg.add("edittext",[56,40,220,60],'',{multiline:false, readonly:false});
dlg.toHTMLtypejpg=dlg.add("radiobutton",[230,40,270,60],'JPG',{value:true,active:true});
dlg.toHTMLtypejpg.value=true;
dlg.toHTMLtypegif=dlg.add("radiobutton",[275,40,310,60],'GIF','');
dlg.toHTMLtypepng=dlg.add("radiobutton",[315,40,360,60],'PNG','');
dlg.toHTMLhtmlbl = dlg.add( 'statictext', [10,65,80,85], 'xHTML:', '');
dlg.toHTML=dlg.add( 'edittext', [10,85,420,170], htm, {multiline:true, readonly:false} );
dlg.toHTMLcsslbl = dlg.add( 'statictext', [10,175,80,195], 'CSS2.0:', '');
dlg.toCSS=dlg.add( 'edittext', [10,195,420,280],css, {multiline:true, readonly:false} );
dlg.toHTMLbtn.addEventListener ("onClick","getSize", "");
dlg.toHTMLlinklbl = dlg.add( 'statictext', [10,282,450,320], '(C)Linr Studio 2007 琳儿工作室 http://www.nihaoku.cn/', '');
dlg.toHTMLID.()
{
dlg.toHTML.text=dlg.toHTML.text.replace(/id=\"[0-9a-zA-Z]+\"/gi,"id=\""+dlg.toHTMLID.text+"\"");
dlg.toCSS.text = dlg.toCSS.text.replace(/#[0-9a-zA-Z]+\{/gi,"#"+dlg.toHTMLID.text+"{");
}
dlg.toHTMLbtn.onClick = function() {
var extname='';
if(dlg.toHTMLtypejpg.value)extname='jpg';
if(dlg.toHTMLtypegif.value)extname='gif';
if(dlg.toHTMLtypepng.value)extname='png';
if(dlg.toHTMLpath.text!=''){dlg.toHTML.text=getInfo(dlg.toHTMLID.text,dlg.toHTMLpath.text,extname).vhtm;dlg.toCSS.text=getInfo(dlg.toHTMLID.text,dlg.toHTMLpath.text,extname).vcss;}
if(dlg.toHTMLpath.text!='' && extname!='')exportFile(extname,'d:\\'+dlg.toHTMLpath.text.replace(/\//gi,'\\')+'.'+extname);
}
dlg.show();
}
createDlg(getInfo().vcss,getInfo().vhtm);
function exportFile(api,path)
{
var saveFilePath=new File(path);
switch(api)
{
case 'jpg':
/* 保存为jpeg格式 */
try
{
...
}
catch (e)
{ // display error
alert("导出JPG格式时发生错误!错误信息如下: \r\r" + e);
return; // quit
}
break;
/* 保存为gif格式 */
case 'gif':
try
{
...
}
catch(e)
{
alert("导出GIF格式时发生错误!错误信息如下: \r\r" + e);
return; // quit
}
break;
/* 保存为png格式 */
case 'png':
try
{
...
}
catch(e)
{
alert("导出PNG格式时发生错误!错误信息如下: \r\r" + e);
return; // quit
}
break;
}
}
/* 获取选区的属性 */
function getInfo(id,str,ext)
{
var _width,_height,_left,_top,_bottom,_right;
var selobj = docRef.selection;
var sel=docRef.selection.bound;
var cssText,html,bgimg=str;
id=(id)?id:'div';
str=(str && ext)?'\t<img src="'+str+'.'+ext+'" alt="" />':'';
bgimg=(bgimg && ext)?'background:url(../images/'+bgimg+'.'+ext+') 0 0 no-repeat;':'';
/* 获取left,top,right,bottom,width,height 等值 */
_left=sel[0].value;
_top=sel[1].value;
_right=sel[2].value;
_bottom=sel[3].value;
_width=_right-_left;
_height = _bottom-_top;
/* 获取HTML,CSS */
cssText = '#'+id+'{width:'+_width+'px;height:'+_height+'px;'+bgimg+'}';
html ='<div id="'+id+'" class="">\r\n'+str+'\r\n</div>';
//alert('CSS:\r\n\t'+cssText);
//alert('HTML:\r\n\t'+html);
return {vcss:cssText,vhtm:html};
}