2012-06-15 4 views
0

Я занимаюсь промежуточным звеном с Javascript, но не знаком с Adobe Extendscript. Для практики и лучшего понимания структуры кода InDesign я пытаюсь получить доступ к свойствам изображения через rectangles.images.

Можно ли получить доступ, скажем, имя файла изображения, через rectangles.images? Также мне интересно, можно ли получить доступ к атрибутам цвета изображения таким образом, скажем, чтобы преобразовать его в оттенки серого?

Вот мой подход до сих пор:

Adobe Indesign CS5: Как получить доступ к имени изображения, типу файла и другим свойствам?

for(var i = 0; i < app.activeDocument.rectangles.length; i++) 
{ 
    var imageType = app.activeDocument.rectangles[i].images.constructor.name; 

    switch(imageType) 
    { 
     case "Images": 
      alert(app.activeDocument.rectangles[i].images.name); // "name" is not a valid property here! 
      break; 

     default: 
      alert("There are no images in this file."); 
    } 
} 

Кроме того, можно определить тип файла изображения с .rectangles.images.constructor.name? Я хотел бы добавить дополнительный пример, например, PDF или jpeg.

ответ

3

Вы не должны использовать конструктор, если не хотите, чтобы определить, какой тип объекта JS, который вам не нужно делать в этом случае, потому что коллекция images будет содержать изображения. Свойство файла будет фактически находиться на связанном с изображением объекте Link.

Примечание никто из этого не тестируется я взял мою этого нужно просто знание JS и API documentation и переработан код ...

var rect = app.activeDocument.rectangles, 
    imgs, 
    filePath, 
    hasImages = false; 

for(var i = 0; i < rect.length; i++) { 
    imgs = rect[i].images; 
    if(imgs.length > 0) { 

     hasImages = true; 
     for (var j = 0; j < imgs.length; j++) { 
     filePath = imgs[j].itemLink ? imgs[j].itemLink.filePath : null; 
     switch (imgs[j].imageTypeName) { 
      case 'jpeg': 
       alert('This is a JPEG:' + filePath); 
       break; 
      case 'pdf': 
       alert('This is a PDF: '+filePath); 
       break; 
      default: 
       alert('Default case - '+imgs[j].imageTypeName+': '+filePath); 
     } 
     } 
    } 
} 

if(!hasImages) { 
    alert('No images in document'); 
} 
+0

Благодаря @prodigitalson! Я не знал свойств 'itemLink' и' filePath', пока вы не ответили на этот вопрос. –

+0

У меня есть файл из другого источника, и он дает мне путь к файлу этой системы, но когда я экспортирую его в html, он дает мне изображение в отдельной папке, среднее изображение также кодируется/прикрепляется в файл –

 Смежные вопросы

  • Нет связанных вопросов^_^