Изрязване на картинка чрез CSS

tu6o

Registered
Здравейте и Весела Коледа!

Искам от картинка с неизвестни размери да изрежа точно определени пиксели от центъра, така че всички нови картинки да имат абсолютно еднакви пропорции (например 150х100).
 
clip.gif
 
моята идея е ткава:
правиш див с рамери 150 на 100 , или елемент който ти искаш.Задаваш му картинакта като бекграунд и така можеш да нагалсиш коя точно част да се вижда.
Пример

.diva { width:150px; height:100px;
background: url(images/kartinka.jpg) no-repeat 20px 40px;}

<div class="diva"></div>

Маркираното с червено е позицията на бекграунда, от там си нагласяш , коя точно част да се вижда.
 
Идеята е добра, обаче не е желателно да правя стил за всяка една картинка, защото те са много
 
защо за всяка една, нали това е целта на цсс-а , направи си клас и тоя клас за всичките. Примерно аз съм ползвал това, но бекграунда се центрира и става така: backgraund: url(/images/kartinka.jpg) no-repeat center center; Другия вариянт е да се преработват в Фотошопа , или да се оразмеряват с PHP
 
@shterev, аз ще ти дам точката, защото
Код:
background: url(/images/kartinka.jpg) no-repeat center center;
е точно това, което ми трябва;
за да не се налага да пиша клас, го редактирах на
Код:
<div style="background: url($image_path) no-repeat center center;">
между другото в последствие разбрах че,
Код:
no-repeat 50%;
има абсолютно същите свойства :)

Оше веднъж благодаря и Весели празници :?:
 
ти можеш да не му задаваш и style" background......" , то зависи къде се намира тоя див , можеш да направиш , ако да речем родителя на тези дивове е с клас .content , да направиш така:


.content div { width:150px; height:100px; background: url(img/picture.jpg) no-repeat center center;}

така си спестяваш доста.
 
Код:
<?php
header('Content-Type: image/jpeg'); 
$file = 'snimka.jpg';
$xnew = '150'; //Широчина
$ynew = '100'; //Височина
$src = imagecreatefromjpeg($file);
list($width,$height)=getimagesize($file);
$xcenter=$width/2;
$ycenter=$height/2;
$xdist=$xcenter-($xnew/2);
$ydist=$ycenter-($ynew/2);
$tmp=imagecreatetruecolor($xnew,$ynew);
imagecopyresampled($tmp,$src,0,0,$xdist,$ydist,$width,$height,$width,$height);
imagejpeg($tmp, NULL, 100);
imagedestroy($src);
imagedestroy($tmp);
?>
Тествано и работи ;)
Може да не го извеждаш, а например да си правиш картинка и така пестиш трафик и дисково пространство. Ти си решаваш
 

Back
Горе