home *** CD-ROM | disk | FTP | other *** search
/ PC World 2005 January / PCWorld_2005-01_cd.bin / software / komercni / zoner / zps7_cz_trial.exe / book1.ZHT / main.js < prev    next >
Encoding:
Text File  |  2004-09-21  |  7.5 KB  |  229 lines

  1. function GeneratePreview(cSourcePath, cDestPath, cID)
  2. {
  3.   //MessageBox("cSourcePath = " + cSourcePath + "\ncDestPath = " + cDestPath + "\ncID = " + cID, "Preview", MB_OK);
  4. }
  5.  
  6. function GetPageFN(iPage) {
  7.   if (iPage == 1) {
  8.     return "index.htm";
  9.   }
  10.  
  11.   return "page" + IntToStr(iPage, 5) + ".htm";
  12. }
  13.  
  14. function GetPageFN(iPage) {
  15.   if (iPage == 1) {
  16.     return "index.htm";
  17.   }
  18.  
  19.   return "page" + IntToStr(iPage, 5) + ".htm";
  20. }
  21.  
  22. var iThnWidth = 160;
  23. var iThnHeight = 120;
  24. var rcThn;
  25.  
  26. function ProcessImage(pImg, pDestImg) {
  27.   pImg.Resize(rcThn.Width()-4, rcThn.Height()-4, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  28.   var rcResized = pImg.GetRect();
  29.  
  30.   pImg.Shadow(iShadowColor, iShadowAlpha*2.55, iShadowXOffset, iShadowYOffset, iShadowBlur, 0);
  31.  
  32.   //pImg.Resize(rcThn.Width(), rcThn.Height(), GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  33.   var rcResized = pImg.GetRect();
  34.  
  35.   var fAngle = Math.random()*fMaxAngle*2-fMaxAngle;
  36.   pImg.Rotate(fAngle, 0, GFX_INTERPOLATE);
  37.  
  38.   var rcImg = pImg.GetRect();
  39.  
  40.   var iOffsetX = (iThnWidth - rcImg.Width()) / 2;
  41.   var iOffsetY = (iThnHeight - rcImg.Height()) / 2;
  42.  
  43.   pImg.Draw(pDestImg, rcImg, iOffsetX, iOffsetY, 255, GFX_KEEP_ALPHA);
  44.  
  45.   return GetRotatedImageMap(rcResized, fAngle, iOffsetX, iOffsetY);
  46. }
  47.  
  48. function GenerateAlbum(cSourcePath, cDestPath)
  49. {
  50.   rcThn = CalcRectBeforeRotate(fMaxAngle, iThnWidth, iThnHeight);
  51.  
  52.   var iFilesCount = lSelectedFiles.GetCount();
  53.  
  54.   var iPagesCount = Math.ceil(iFilesCount / 6);
  55.  
  56.   CopyFile(cSourcePath + "0101.jpg", cDestPath + "0101.jpg", FIL_OM_OVERWRITE);
  57.  
  58.   CopyFile(cSourcePath + "0201.jpg", cDestPath + "0201.jpg", FIL_OM_OVERWRITE);
  59.   CopyFile(cSourcePath + "0203.jpg", cDestPath + "0203.jpg", FIL_OM_OVERWRITE);
  60.   CopyFile(cSourcePath + "0205.jpg", cDestPath + "0205.jpg", FIL_OM_OVERWRITE);
  61.  
  62.   CopyFile(cSourcePath + "0301.jpg", cDestPath + "0301.jpg", FIL_OM_OVERWRITE);
  63.  
  64.   CopyFile(cSourcePath + "0401.jpg", cDestPath + "0401.jpg", FIL_OM_OVERWRITE);
  65.   CopyFile(cSourcePath + "0403.jpg", cDestPath + "0403.jpg", FIL_OM_OVERWRITE);
  66.   CopyFile(cSourcePath + "0405.jpg", cDestPath + "0405.jpg", FIL_OM_OVERWRITE);
  67.  
  68.   CopyFile(cSourcePath + "0501.jpg", cDestPath + "0501.jpg", FIL_OM_OVERWRITE);
  69.  
  70.   CopyFile(cSourcePath + "0601.jpg", cDestPath + "0601.jpg", FIL_OM_OVERWRITE);
  71.   CopyFile(cSourcePath + "0603.jpg", cDestPath + "0603.jpg", FIL_OM_OVERWRITE);
  72.   CopyFile(cSourcePath + "0605.jpg", cDestPath + "0605.jpg", FIL_OM_OVERWRITE);
  73.  
  74.   CopyFile(cSourcePath + "0701.jpg", cDestPath + "0701.jpg", FIL_OM_OVERWRITE);
  75.  
  76.   CopyFile(cSourcePath + "0801.jpg", cDestPath + "0801.jpg", FIL_OM_OVERWRITE);
  77.   CopyFile(cSourcePath + "0803.jpg", cDestPath + "0803.jpg", FIL_OM_OVERWRITE);
  78.   CopyFile(cSourcePath + "0805.jpg", cDestPath + "0805.jpg", FIL_OM_OVERWRITE);
  79.  
  80.   CopyFile(cSourcePath + "0901.jpg", cDestPath + "0901.jpg", FIL_OM_OVERWRITE);
  81.  
  82.   var tPage = new CTemplate();
  83.   tPage.Load(cSourcePath + "page.tpl", 0);
  84.  
  85.   tPage.SetReplace("${TITLE}", cTitle);
  86.   tPage.SetReplace("${HEAD_FONT_SIZE}", iHeaderFontSize);
  87.   tPage.SetReplace("${HEAD_FONT_COLOR}", HEXColor(iHeaderFontColor));
  88.   tPage.SetReplace("${FOOT_FONT_SIZE}", iFooterFontSize);
  89.   tPage.SetReplace("${FOOT_FONT_COLOR}", HEXColor(iFooterFontColor));
  90.   tPage.SetReplace("${HEADER}", ReplaceExifStrings(cHeader, "", ""));
  91.   tPage.SetReplace("${FOOTER}", ReplaceExifStrings(cFooter, "", ""));
  92.  
  93.   var tImg = new CTemplate();
  94.   tImg.Load(cSourcePath + "img.tpl", 0);
  95.  
  96.   var tNoImg = new CTemplate();
  97.   tNoImg.Load(cSourcePath + "noimg.tpl", 0);
  98.  
  99.   var tPgn = new CTemplate();
  100.   tPgn.Load(cSourcePath + "pgn.tpl", 0);
  101.  
  102.   var tMap = new CTemplate();
  103.   tMap.Load(cSourcePath + "map.tpl", 0);
  104.  
  105.   var iPage = 1;
  106.   var iImg = 1;
  107.   var cMaps = "";
  108.  
  109.   for (var iFile = 1; ((iFile <= iFilesCount) || (iImg != 1)); iFile++) {
  110.     if (iFile <= iFilesCount) {
  111.  
  112.       cFileName = lSelectedFiles.GetAt(iFile-1);
  113.       if (bUseOriginalFileNames)
  114.       {
  115.         cGetFileName = GetFileName(cFileName);
  116.  
  117.         cThnFileName = "thn_" + cGetFileName + ".jpg";
  118.         cImgFileName = cGetFileName + ".jpg";
  119.       }
  120.       else
  121.       {
  122.         cThnFileName = "thn" + IntToStr(iPage, 3) + "-" + iImg + ".jpg";
  123.         cImgFileName = "img" + IntToStr(iFile, 5) + ".jpg";
  124.       }
  125.  
  126.       var cMapName = "imgMap" + iImg;
  127.  
  128.       var pOrigImg = new CImage();
  129.       pOrigImg.Load(cFileName, 0);
  130.  
  131.       pOrigImg.Resize(iImgWidth, iImgHeight, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  132.       pOrigImg.SaveAs(cDestPath + cImgFileName, JPGformat, iImgJPEG, 0);
  133.  
  134.       var pImg = new CImage();
  135.       pImg.Load(cSourcePath + "img" + iImg + ".jpg", 0);
  136.       var cMapCoords = ProcessImage(pOrigImg, pImg);
  137.       pImg.SaveAs(cDestPath + cThnFileName, JPGformat, iTNJPEG, 0);
  138.  
  139.       pOrigImg.Close();
  140.       pImg.Close();
  141.  
  142.       tMap.SetReplace("${MAP_NAME}", cMapName);
  143.       tMap.SetReplace("${MAP_HREF}", cImgFileName);
  144.       tMap.SetReplace("${MAP_COORDS}", cMapCoords);
  145.       cMaps += tMap.Replace();
  146.  
  147.       tImg.SetReplace("${THN_FILENAME}", cThnFileName);
  148.       tImg.SetReplace("${THN_MAPNAME}", cMapName);
  149.  
  150.       tPage.SetReplace("${IMG"+iImg+"}", tImg.Replace()); 
  151.  
  152.       pImg.Close();
  153.       pOrigImg.Close();
  154.  
  155.     } else { // no other files to process, make table complete
  156.       var cThnFileName = "thn" + IntToStr(iPage, 3) + "-" + iImg + ".jpg";
  157.       CopyFile(cSourcePath + "img" + iImg + ".jpg", cDestPath + cThnFileName, FIL_OM_OVERWRITE);
  158.       tNoImg.SetReplace("${THN_FILENAME}", cThnFileName);
  159.  
  160.       tPage.SetReplace("${IMG"+iImg+"}", tNoImg.Replace()); 
  161.     }
  162.  
  163.     iImg++;
  164.  
  165.     if (iImg > 6) {
  166.       if (iPage > 1) {
  167.         tPage.SetReplace("${PREV}", "  <a href=\""+GetPageFN(iPage-1)+"\"><<</a>");
  168.       } else {
  169.         tPage.SetReplace("${PREV}", "  ");
  170.       }
  171.       if (iPage < iPagesCount) {
  172.         tPage.SetReplace("${NEXT}", "<a href=\""+GetPageFN(iPage+1)+"\">>></a>  ");
  173.       } else {
  174.         tPage.SetReplace("${NEXT}", "  ");
  175.       }
  176.       tPage.SetReplace("${MAPS}", cMaps);
  177.  
  178.       var pFont = NewFont("Tahoma", 20, 0, 0);
  179.       var pText = new CImage();
  180.       var pImg = new CImage();
  181.  
  182.       var cPgnFileName = "pgn" + IntToStr(iPage, 3) + "-" + 1 + ".jpg";
  183.  
  184.       pText.CreateText((iPage-1)*2+1, 140, pFont, 0, 0, 0, GFX_TEXT_TRANSPARENT | GFX_TEXT_CENTER);
  185.       pText.Resize(70, 20, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  186.       var rcText = pText.GetRect();
  187.  
  188.       pImg.Load(cSourcePath + "pgn1.jpg", 0);
  189.       pText.Draw(pImg, rcText, 0, 0, 255, GFX_KEEP_ALPHA);
  190.       pImg.SaveAs(cDestPath + cPgnFileName, JPGformat, 70, 0);
  191.  
  192.       tPgn.SetReplace("${THN_FILENAME}", cPgnFileName);
  193.       tPage.SetReplace("${PGN1}", tPgn.Replace());
  194.  
  195.       pImg.Close();
  196.       pText.Close();
  197.  
  198.       var cPgnFileName = "pgn" + IntToStr(iPage, 3) + "-" + 2 + ".jpg";
  199.  
  200.       pText.CreateText((iPage-1)*2+2, 140, pFont, 0, 0, 0, GFX_TEXT_TRANSPARENT | GFX_TEXT_CENTER);
  201.       pText.Resize(70, 20, GFX_KEEP_ASPECT | GFX_INTERPOLATE);
  202.       var rcText = pText.GetRect();
  203.  
  204.       pImg.Load(cSourcePath+"pgn2.jpg", 0);
  205.       pText.Draw(pImg, rcText, 0, 0, 255, GFX_KEEP_ALPHA);
  206.       pImg.SaveAs(cDestPath + cPgnFileName, JPGformat, 70, 0);
  207.  
  208.       tPgn.SetReplace("${THN_FILENAME}", cPgnFileName);
  209.       tPage.SetReplace("${PGN2}", tPgn.Replace());
  210.  
  211.       pImg.Close();
  212.       pText.Close();
  213.  
  214.       SaveString(cDestPath + GetPageFN(iPage), tPage.Replace(), 0);
  215.  
  216.       cMaps = "";
  217.       iImg = 1;
  218.  
  219.       iPage++;
  220.     }
  221.  
  222.   }
  223.  
  224.   return cDestPath + GetPageFN(1);
  225.   
  226. }
  227.  
  228. INIT_OK;
  229.