Реклама на сайте Advertise with us

Как вырезать тумбу c помощью ImageMagick ?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 07/08/12 в 16:01       Ответить с цитатойцитата 

Сабж такой - надо из оригинала картинки, независимо от пропорции оригинала, сделать тумбу размером 150х200 (ну вырезать по центру, как режет любой ротатор на автомате) и применить к ней после ресайза вот такое: -filter Blackman -modulate 110,102,100 -sharpen 1x1 -enhance

Что надо передать IM чтобы он скропил до пропорции нужной, сресайзил, применил строчку эту, параметры, и сохранил с качеством 85 ?
Типа там convert 1.jpg -crop бла-бла-бла ...

Сделать хочется именно IM т.к. софтина на дельфях, не php, GD не предлагать icon_smile.gif
Подскажите, а то заёбся читать мануал ImageMagick'а icon_smile.gif

p.s. Вопрос именно как скропить, сресайзить через IM, как это приморозить к делфям понятно icon_smile.gif

0
 

Криптопохуист

С нами с 05.04.03
Сообщения: 17158
Рейтинг: 6019

Ссылка на сообщениеДобавлено: 07/08/12 в 16:25       Ответить с цитатойцитата 

Там сначала надо высчитать пропорции кратные 150х200 и кропнуть до них с нужным параметром -gravity center, чтобы потом ресайз через -thumbnail не исказил изображение.

То есть, предварительно надо узнать исходный размер. Потом высчитать x,y и -crop x,y -gravity center -thumbnail 150,200 (и дальше че там)

Пишу по памяти, мог ошибиться в деталях. Но я делал так

7
 

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 07/08/12 в 17:01       Ответить с цитатойцитата 

А попроще никак ?

Вот у типа бложек http://valokuva.org/?p=33 вроде получается лихо и просто - но я нихера не вижу таких команд в IM icon_smile.gif

0
 



С нами с 13.08.07
Сообщения: 1089
Рейтинг: 1522

Ссылка на сообщениеДобавлено: 07/08/12 в 19:28       Ответить с цитатойцитата 

так у него там библиотека установлена, это не команды ИМ

вот тут почитай
http://valokuva.org/?page_id=50

Адалт умер, а мы всего лишь черви, доедающие его труп.
Angry Bull, 2018.

8
 

Soul's Buyer

С нами с 16.11.05
Сообщения: 12702
Рейтинг: 10740


Передовик Master-X (16.10.2008) Передовик Master-X (01.11.2008) Передовик Master-X (16.11.2008) Передовик Master-X (01.12.2008) Передовик Master-X (16.12.2008) Ветеран трепа Master-X (01.01.2009)
Ссылка на сообщениеДобавлено: 07/08/12 в 19:37       Ответить с цитатойцитата 

Да, затупил ... Так что получается, самый быстрый путь это получить ширину и высоту исходника, сравнить и после этого делать два ресайза (или 1 ресайз и 1 кроп), где первый ресайз только ширины или только высоты (в зависимости от того, что больше у исходника) ? Или есть методы побыстрее и в меньше шагов ?

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 07/08/12 в 20:35       Ответить с цитатойцитата 

1. получаешь физический размер картинки
2. берешь размер тумбы и в пропорции накладываешь на размер из пункта 1
3. режешь по полученным координатам, указывая размер тумбы на выходе и добавляя фильтры.

т.е. все за одну операцию делается.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

7
 



С нами с 08.02.03
Сообщения: 10564
Рейтинг: 5962


Передовик Master-X (01.06.2018) Передовик Master-X (16.06.2019) Передовик Master-X (01.04.2020) Передовик Master-X (16.04.2020) Передовик Master-X (16.10.2021) Ветеран трепа Master-X (01.11.2021)
Ссылка на сообщениеДобавлено: 07/08/12 в 20:46       Ответить с цитатойцитата 

Woland: сначала кроп правильный, а потом ресайз

7
 



С нами с 06.10.06
Сообщения: 964
Рейтинг: 742

Ссылка на сообщениеДобавлено: 13/08/12 в 08:02       Ответить с цитатойцитата 

тоже надо было такое сделать в свое время, алгоритм следующий (шелл скрипт)

запускать с параметрами
./resize.sh original.jpg 150 200 thumb.jpg

#!/bin/sh

# $1 - имя исходной фотки
# $2 - требуемая ширина тумбы
# $3 - требуемая высота тумбы
# $4 - имя тумбы

w=`identify $1 | cut -f 3 -d " "|cut -f 1 -d "x"` # узнаем ширину фотки
h=`identify $1 | cut -f 3 -d " "|cut -f 2 -d "x"` # узнаем высоту фотки

r1=`echo $w / $2 | bc -l` # находим разницу между шириной фотки и требуемой шириной тумбы
r2=`echo $h / $3 | bc -l` # находим разницу между высотой фотки и требуемой высотой тумбы

res=`echo "$r2 > $r1" | bc -l`

if [ $res -eq 1 ]; then # Если разница высот больше то делаем ресайз по ширине
convert -resize $2"x" -gravity center -crop $2"x"$3+0+0 $1 $4
else # и наоборот, если разница шырин больше то делаем ресайз по высоте
convert -resize x$3 -gravity center -crop $2"x"$3+0+0 $1 $4
fi

MyPublicDreams.com - Exclusive public paysite.

-2
 



С нами с 20.02.06
Сообщения: 248
Рейтинг: 366

Ссылка на сообщениеДобавлено: 13/08/12 в 17:38       Ответить с цитатойцитата 

Блин, что-то у вас всё так сложно... icon_smile.gif

Делается всё одной командой: сначала ресайзится до нужного размера с сохранением пропорций, а потом по бокам (или сверху-снизу) отрезается лишнее. и не надо знать никаких исходных размеров

Код:
convert source.jpg -resize "150x200^" -gravity center -extent 150x200 -filter Blackman -modulate 110,102,100 -sharpen 1x1 -enhance dest.jpg

0
 



С нами с 06.10.06
Сообщения: 964
Рейтинг: 742

Ссылка на сообщениеДобавлено: 14/08/12 в 14:51       Ответить с цитатойцитата 

Есть куча вариантов как это сделать, то был только один из них icon_smile.gif

MyPublicDreams.com - Exclusive public paysite.

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »