Возвращение внедренному файлу 100%

  • Автор темы Автор темы SAS
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

SAS

Топикстартер
15 лет на форуме
Сообщения
685
Реакции
30
Простите меня злые Одмины, тема уже подымалась, но не смог я отыскать ее.

Руки наверное ни с того места, но все же.

Любой прилинкованный файл, или же картинку можно в илюстраторе повсякому маштабировать - причем в Link information - можно даже видеть эти искажения в процентном виде.

Но вопрос как мне это изображение вернуть в 100%?

Еще раз простите и спасибо.

Некоторое время спустя я нашел свою же тему...

как вернуть линку размер?

но конечного ответа там так и не было.
 
Ответ: Возвращение внедренному файлу 100%

ответ там был #7— "WR-descaleimages.js" (только его надо модифицировать чуток, может кто переделает, у меня сейчас просто времени нет)

Основная проблема, что нельзя определить начальные 100%, и матрица (matrix) у linked и embedded отличаются.
Илл считает растр через 72dpi. Поэтому делают rescale к определенному значению. Собственно, скрипт об этом и предупреждает
"Rescale all selected Images back to 100 % (based on 300 dpi)?"
Как вариант добавить запрос до какого resolution'а рескайлить.
 
Ответ: Возвращение внедренному файлу 100%

а может и не надо править, вроде и так работает.
прицепляю
 

Вложения

Ответ: Возвращение внедренному файлу 100%

я тестил "WR-descaleimages.js" в CS2, и для linked и для embeded работает криво.
у linked делается hor. vlip (ValueD должно быть -1, а ставит 1)
embeded приводится к 72dpi.

Или в CS3 опять всё поменяли и растер "пишется" как было в ранних версиях Илла, а не как в кореле?
 
Ответ: Возвращение внедренному файлу 100%

Насчет 72 -- вроде бы не подтверждается, считает исходя из 300 ppi, если файл не ргбовый.

зеркалирование линков вроде пофиксил.
работает на tif, psd, photoshop eps, photoshop pdf.

PHP:
//////////////////////////////////////////////////////////// english //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// A Javascript for Adobe Illustrator
// by Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.4 from 17.2.2005
//
// This script rescales all selected images back to 100 %.
//
// Select all relevant objects and execute this script. It doesn't
// matter if you have also selected some paths.
//
// Because Illustrator always uses 72 dpi to calculate the scale on
// raster-images, the script checks if the document is CMYK or RGB.
// For RGB it uses 72 dpi and for CMYK it uses the Value in
// Line 56 (default 300 dpi).
//
// To enable the english messages change the "de" into "en" in line 57.
//
// Sorry for my bad english. For any corrections send an email to:
// ai-js@rumborak.de
//
//////////////////////////////////////////////////////////// Deutsch //
// ------------------------
// -=> WR-descaleimages <=-
// ------------------------
//
// Ein Javascript fuer Adobe Illustrator
// von Wolfgang Reszel (ai-js@rumborak.de)
//
// Version 0.4 vom 17.2.2005
//
// Dieses Skript skaliert alle ausgewaehlten Bilder wieder auf 100 %.
//
// Einfach alle betreffenden Objekte auswaehlen und dieses Skript
// ausfuehren. Es ist nicht schlimm, wenn auch Pfade mit ausgewaehlt
// wurden.
//
// Da Illustrator den Skalierungsfaktor bei Pixelbildern immer von
// 72 dpi aus berechnet, prueft das Skript, ob das Dokument ein CMYK-
// oder RGB-Dokument ist. Bei RGB wird 72 dpi verwendet und bei CMYK
// der Wert, welcher in Zeile 56 festgelegt wurde (300 dpi).
//
// Um dieses Skript mit deutschen Meldungen zu versehen, muss in Zeile
// 57 das "en" durch ein "de" ersetzt werden.
//
// Verbesserungsvorschlaege an: ai-js@rumborak.de
//

//$.bp();

// -------------------------------------------------------------------

var language="en";   // "de" fuer Deutsch
var dpi=300;         // CMYK-Resolution / CMYK-Aufloesung

// -------------------------------------------------------------------

var WR="WR-descaleimages v0.4\n\n";
var RGB=0;

try {
  if (activeDocument.documentColorSpace == 1 || activeDocument.documentColorSpace == DocumentColorSpace.RGB) {RGB = 1;}
} catch (e) {}
if (RGB == 1) {var dpi=72;}

if (language == "de") {

  var MSG_ask = WR+"Sollen alle markierten Bilder wieder auf 100 % (ausgehend von "+dpi+" dpi) skaliert werden?\nPDF, EPS und 

PSD-Dateien werden auf ihre Ursprungsgr\xF6\xDFe skaliert.";
  var MSG_center = WR+"Sollen die Bilder vom Mittelpunkt skaliert werden?";
  var MSG_noimages = WR+"Du hast keine Bilder ausgew\xE4hlt.";
  var MSG_nodocs = WR+"Kein Dokument ge\xF6ffnet.";

} else {

  var MSG_ask = WR+"Rescale all selected Images back to 100 % (based on "+dpi+" dpi)?\nPDF, EPS and PSD-files will be rescaled to 

their original size.";
  var MSG_center = WR+"Rescale the images from center?";
  var MSG_noimages = WR+"You have no images selected.";
  var MSG_nodocs = WR+"You have no open document."

}

var itemstoprocess=0;
var error=0;

if (documents.length<1) {
  error++;
  alert(MSG_nodocs);
} else {
  var theTest = selection;
  for (var i = 0 ; i < theTest.length; i++)
  {
    if (theTest[i].typename == "RasterItem" || theTest[i].typename == "PlacedItem" ) { itemstoprocess++ ; }
  }

  if (itemstoprocess>0)
  {
    if (error < 1) {
      if (confirm(MSG_ask)) {
        descale();
      }
    }
  } else {
    alert (MSG_noimages);
  }
}

function descale() {
  theItems = selection;

  var center = confirm(MSG_center);

  var processedItems=0;

  for (var i = 0 ; i < theItems.length; i++)
  {
    if (theItems[i].typename == "RasterItem" || theItems[i].typename == "PlacedItem" ) {
      processedItems++;
      var oldwidth = theItems[i].width;
      var oldheight = theItems[i].height;
      var oldx = theItems[i].position[0];
      var oldy = theItems[i].position[1];

      if (RGB != 1  && theItems[i].typename == "RasterItem") { var dpiscale=dpi/72; } else { var dpiscale=1; }

      theItems[i].matrix.mValueA = 1/dpiscale;
      theItems[i].matrix.mValueB = 0;
      theItems[i].matrix.mValueC = 0;
      if (theItems[i].typename == "PlacedItem" && (theItems[i].file.name.indexOf('.pdf') != -1 || theItems[i].file.name.indexOf('.psd') != -1  || theItems[i].file.name.indexOf('.tif') != -1)) {
        theItems[i].matrix.mValueD = -1/dpiscale;
      } else {
        theItems[i].matrix.mValueD = 1/dpiscale;
      }

      theItems[i].left = oldx;
      theItems[i].top = oldy;

      if(center == true) {
        var newwidth = theItems[i].width;
        var newheight = theItems[i].height;

        theItems[i].translate( (oldwidth-newwidth)/2 , (newheight-oldheight)/2 );
      }
    }
  }
}
 
Ответ: Возвращение внедренному файлу 100%

чтобы совсем хорошо было (не делать руками reset Bounding Box), можно было tags прибить.
 
Ответ: Возвращение внедренному файлу 100%

Steve сказал(а):
ответ там был #7— "WR-descaleimages.js" (только его надо модифицировать чуток, может кто переделает, у меня сейчас просто времени нет)

Основная проблема, что нельзя определить начальные 100%, и матрица (matrix) у linked и embedded отличаются.
Илл считает растр через 72dpi. Поэтому делают rescale к определенному значению. Собственно, скрипт об этом и предупреждает
"Rescale all selected Images back to 100 % (based on 300 dpi)?"
Как вариант добавить запрос до какого resolution'а рескайлить.
А как посмотреть разрешение картинки?
 
Ответ: Возвращение внедренному файлу 100%

Забавно, но немасштабированные фотографии на 300 ppi при щелчке на линке сообщают о себе, что их масштаб 24%. ;)

Эта недоработка никого не волнует (особенно разработчиков). Единственное что она сбивает с толку и новичок не может оценить "норму" разрешения вставленной фотографии. Поэтому часто встречаются макеты, где А4 фотографии отмасштабированы в сантиметровые иконки, при этом количество пикселов в изображении не изменено (например, растрированием в самом Иле). И получаются дивнейшие макеты, когда А3 может потянуть гига на 1,5-2.
 
Ответ: Возвращение внедренному файлу 100%

Попробуйте вот это. Приводит фотографии к их исходному виду. Например после масштаба или поворота можно восстановить исходное положение этим скриптом, а потом - reset bounding Box.:
 

Вложения

Ответ: Возвращение внедренному файлу 100%

ch_alex сказал(а):
Эта недоработка никого не волнует (особенно разработчиков).
Недоработка волнует :) причем, пользователей волнует больше. А разработчики, они в процессе зарабатывания денег. Чтобы исправить недоработку, надо было делать доп. параметр (k) для растра - может линиатуру. В общем, какой-то параметр, что считать за 100% масштаба растра. И показывать юзеру результат = "кривую" матрицу (72ppi) с учетом этого k.

Ждемс :)
 
Статус
Закрыто для дальнейших ответов.