Как "вслепую" подогнать картинку из буфера по холсту?

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

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Т.е. всё не так просто. Экшн создаёт новый док, высота и ширина которого мне неизвестны, вставляет картинку, высота и ширина которой мне неизвестны, но она всегда больше. Дальше задача: маштабировать её по холсту БЕЗ сохранения пропорций.
Вот странно, нет такой фичи в ФШ? Вернее есть, в Image->Variables->Define->Method:Conform, но Variables тут не задействовать...
Например холст под картинку легко подогнать парой команд: Reveal all, Trim, а наоборот никак? Я уж на любой изврат согласен :( Поделитесь идеей, плз!
 

Mr.Adel

Участник
Сообщения
662
Реакции
1
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Ctrl+T

Не по теме:
если честно, не совсем понятна задача
 

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Mr.Adel сказал(а):
Ctrl+T

Не по теме:
если честно, не совсем понятна задача
У экшна нет пальцев:)
а задача, да, мудрённая, и вся решена, ток за этим дело стало. Альт. реш. есть, да слишком грубые все...
иными словами... мож кто видел такой скрипт на жабе или вб? С меня пиво, в питере - реальное:)
 

sander

15 лет на форуме
Сообщения
1 562
Реакции
137
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Вначале засунуть картинку в клипборд.. - ATN1.png

Если из буфера, то ещё проще - смотри ATN2.png

Комментарии нужны?
Жаль я не в питере )))
 

Вложения

  • atn.png
    atn.png
    1.8 КБ · Просм.: 916
  • atn2.png
    atn2.png
    1.2 КБ · Просм.: 690

Mr.Adel

Участник
Сообщения
662
Реакции
1
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

sander сказал(а):
Жаль я не в питере )))

Не по теме:
А разве поезда сюда уже не ходят? :)
 

sander

15 лет на форуме
Сообщения
1 562
Реакции
137
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

nuwot сказал(а):
С меня пиво, в питере - реальное:)

Не по теме:
Короче, пивом поишь MR.ADEL`я 'beer1'
Жертвую)

Я только из отпуска вернулся

 

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

sander, если б всё было так просто...
Ок, придётся быть занудой и рассказать всё с начала.
Мы делаем сложносочинённые картинки для вебмагазина, на фон сажаются 3 прямоугольные объекты из 3-х фоток, ресайзятся, расставляются, итд. Я сделал док-шаблон + длинный зкшн и всё пошло на автомате, со стопами только для цветокоррекции, на выходе - 4 картинки, нужные для веба.
Но эти 3 прямоугольные объекты, они бывают разных "фасонов"... Ок, я делал док-шаблон+экшн под каждый, раздница этих экшнов лишь в параметрах image size`a. Их набралось штук 15, и народ потихонику начал запутываться... А теперь их кол-во надо утроить!
Логично пришла мысль сделать общий шаблон (об изврате- без подробностей :) и универсальный экшн. На этапе экшн создаёт новый док размера икс, какой юзер выбирет в шаблоне (реализовано через селект-копи-ньюдок-пресет:клипборд :) вставляет фотку из другого дока, она всегда имеет размеры икс, и теперь он должен придать фотке размеры дока... Но размеры обох неизвесны (переменная величина) тч пиксели/% не причём. Пропорции тут роли не играют.
Вот такая мелочь выросла в проблему.
Сорри за графоманию :)
 

sander

15 лет на форуме
Сообщения
1 562
Реакции
137
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Примеров бы..
Ну взять размеры документа с опр. именем в окне шопа вроде можно.
и засунуть их в Image Size.
Скриптов на VB / AS /JS не писал, sorry (
Просмотрел, что размер "фона" тоже переменный и заранее не известен !

Как припрёт буду учить VB / AS /JS
читать AppleScript Reference Guide.pdf / JavaScript Reference Guide.pdf /VisualBasic Reference Guide.pdf
 
O

oxygen777

Гость
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

С экшнами проблема, но можно попробовать использовать вместо Paste - Place. Дело в том что там есть опция, при включении которой программа автоматически загоняет (с сохранением пропорций) помещаемый файл в помещение. :) Это в префсах, Resize during paste/place. Не обольщайтесь насчет paste, это для артворка, вектора. А place одинаково работает и с растром.

А вообще вам нужен нормальный скрипт с интерейсом. Чухаться с таким количеством екшнов - смысла нет. Со временем это само станет проблемой.
 

Mr.Adel

Участник
Сообщения
662
Реакции
1
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Комментарий модератора: Для сообщений не по теме настоятельно рекомендую использовать тэги OFF.

Не по теме:
Извините, забыл:)
 

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Да уж потыкано всё :) вапще пофик, решу я это как чел, или придётся по-гоблински (есть варики), не суть, вопрос стал иначе: без скриптинга моя работа ооочень скоро станет секретарской, тем, что, слегка объяснив, поручишь любому\любой, был бы комп, да шоп на компе:) не каркаю, скорею кукушку считаю:)
 

Kuzmin

15 лет на форуме
Сообщения
236
Реакции
92
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Код:
// FitLayerToCanvasCS2.jsx
// Скрипт для Photoshop CS2
// приводит размеры текущего слоя к размерам холста (пропорции не сохраняются).
// Юрий Кузьмин © 2006
// [email]yuri-kuzmin@yandex.ru[/email]

#target photoshop
var strtRulerUnits = app.preferences.rulerUnits;
preferences.rulerUnits = Units.PIXELS;

if (app.documents.length > 0)
{
    docRef = app.activeDocument;
    layerRef = docRef.activeLayer;
    if (layerRef.isBackgroundLayer == false) {
        var canvas_width = docRef.width.value;
		var canvas_height = docRef.height.value;

		var layer_width = layerRef.bounds[2]-layerRef.bounds[0];
		var layer_height = layerRef.bounds[3]-layerRef.bounds[1];

		layerRef.resize(100*canvas_width/layer_width, 100*canvas_height/layer_height, AnchorPosition.TOPLEFT);
		layerRef.translate(-layerRef.bounds[0]/(docRef.resolution/72),-layerRef.bounds[1]/(docRef.resolution/72));
	}
}

app.preferences.rulerUnits = strtRulerUnits;
docRef = null
layerRef = null
 
  • Спасибо
Реакции: Kolobokk

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Kuzmin, супер! Красиво и ясно. Спасибо и респект.
 
O

oxygen777

Гость
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Измените:
preferences.rulerUnits = Units.PIXELS;

На:
preferences.rulerUnits = Units.POINTS;

И это:

layerRef.translate(-layerRef.bounds[0]/(docRef.resolution/72),-layerRef.bounds[1]/(docRef.resolution/72));

Станет таким:

layerRef.translate(-layerRef.bounds[0],-layerRef.bounds[1]);
 

ins.

Участник
Сообщения
163
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?


Не по теме:
когда читаю вот такие топики, иногда проскакивает чувство ущербности какой-то.. :)

ЗЫ: НУВОТ, выставляйся Кузьмину — товарищч тебе человеко-часы реально сэкономил.)

 
O

oxygen777

Гость
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

У миня осталось осчусчение что нювот только пожаловацца хотел на свою горькую, но героическую сутьбу. Решать производственную задачу таким заплатно-штопальным методом...
 

nuwot

Участник
Топикстартер
Сообщения
7
Реакции
0
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

oxygen777, ну прояви сострадание :) неделя мозгонапряга, впустую посути, помогли, дальше - реализация и релакс в квиктемпе (вино-аниме-лес) чтоб не загнуться:) Я ш не со зла не ответил на мыло, скрин в глазах двоится уже. Героическая судьба, однако:)
"заплатно-штопальный метод"- да, это именно так, увы. Но может эта заплата даст мне неделю сесть за скрипт-гид:)
 
O

oxygen777

Гость
Ответ: Как "вслепую" подогнать картинку из буфера по холсту?

Гоните ТЗ. Вам помогут.
 
Статус
Закрыто для дальнейших ответов.