Resize картинка, как ?! (JS)

  • Автор Автор lamer
  • Начална дата Начална дата

lamer

Registered
Да речем че имам даден див с размери 300Х300 и в него каквато и картинка да сложа тя да се побира в рамката 300Х300 без да променя пропорциите си. Как да го направя?!Знам, че е с Java

Виждал съм в сайтове че го правят но обикновенно е сложено в галерии и джавата е много заплетена..... Ако искате мога да ви покажа такъв сайт ако някой може да го открадне......

Код:
<div style="height: 300px: width: 300px;">
<img src="321X3412.jpg" />
</div>
<br /><div style="height: 300px: width: 300px;">
<img src="124X54234.jpg" />
</div>
<br /><div style="height: 300px: width: 300px;">
<img src="5434X3423.jpg" />
</div>
<br /><div style="height: 300px: width: 300px;">
<img src="342432X432432.jpg" />
</div>

Примерен код затова размера на картинката е непознат
 
Ей пич ти искаш в твой HTML сайт да има картинка която ти си я сложил и тя да бъде с размери 300x300 ли ?
 
не искам картинка която аз слагам независимо какъв размер е тя да се смалява до такова положение че максималната й височина или широчина да е 300 но не да е 300Х300.
Примерно ако картинката е с размери по големи от 300Х300 и пропорцията и е 4:3 или 16:9 или нещо друго кактото и да е тя да се смали до толкова че да се побере в дадени размери като максимални тоест 300Х300 и да запази пропорцията си а не да се разтегля
 
Знам, че е с Java

Не е с Java. А JavaSCRIPT. Обаче това не е проблема. Проблема е, че е най-добре да го направиш с някой сървърен език (php примерно), защото иначе който ти отвори сайта пак ще изтегли пълната картинка и то му се губи ефекта. Пак ще зарежда много време страницата.
 
Код:
<script>
function rs(r, mw, mh) {
	var width = r.width;
	var height = r.height;
	
	ratio1=width/mw;
    ratio2=height/mh;
    if(ratio1>ratio2) {
    thumb_w=mw;
    thumb_h=height/ratio1;
    }
    else {
    thumb_h=mh;
    thumb_w=width/ratio2;
    }
	
	r.width = thumb_w;
	r.height = thumb_h;
}
</script>

<img src="http://pacharoza.esut.eu/kola_2.jpg" onload="rs(this, 300, 300)" />
 
Жоре човече направо не издържам брат ше те скина човек :D ти си най-лудия цяяяяяяяяяял ден го търся тфа........ ти ли го написа........ поне така мяса......... ако не си ти кажи от каде поне да ми мине :D
--------------------------------------------------------------------------------


StormBreaker каза:
Знам, че е с Java

Не е с Java. А JavaSCRIPT. Обаче това не е проблема. Проблема е, че е най-добре да го направиш с някой сървърен език (php примерно), защото иначе който ти отвори сайта пак ще изтегли пълната картинка и то му се губи ефекта. Пак ще зарежда много време страницата.

Извинявай! Трябва ли да се извиня публично по телевизията, че ме домързя да напиша думата SCRIPT можеби трябваше да се сетя да го напиша така: JS. Знам че JAVA е отделен език за програмиране не се притеснявай, учил съм го ! Не ми припомняй пак :D
Иначе пък си прав, но аз търся друго иначе пък, даже ще съм ти благодарен ако ми дадеш и php вариант, но незнам дали ще важи за GIF разширения. Но това не е голям проблем ............
Та с две думи, ако ми намериш пхп осъразмеряване на файл ще съм ти благодарен :)
 
Извинявай, не исках да прозвучи така. :?
Имах го готово в един проект, обаче сега намирам само такива дето съм ползвал непропорционално променяне на размерите.

peace brother :D :lol:
 
lamer каза:
Жоре човече направо не издържам брат ше те скина човек :D ти си най-лудия цяяяяяяяяяял ден го търся тфа........ ти ли го написа........ поне така мяса......... ако не си ти кажи от каде поне да ми мине :D

Да, аз го написах :-)
 
<?php
$picture = '../picture'; //тука пишеш урл-то на пика
$size = getImageSize($picture);
$width = $size[0];
$height = $size[1];
while($height > 300 || $width > 300) {
$height = $height/2;//тука си избери с колко да го намаля, докато стане 300
$width = $width/2; // тука също
}
print "<img src=\"".$picture."\" height=\"$height\" width=\"$width\" align=\"right\" alt=\"pic\">";
?>

Това е на PHP, мисля, че ще ти послужи :?:

Имам и друг код, но мисля че този ще ти свърши работа.
 
@StormBreaker
споко е просто цял ден правя тука един сайт че ми е спешен ииии малко съм избочил но ако го намериш дори и да е без запазване на пропорцията аз ще използвам метода да този js в пхп за да запазя пропорцията :) Намериш лиго пиши....... лична ли тука ли пи6и :)
 
dkalinkov каза:
<?php
$picture = '../picture'; //тука пишеш урл-то на пика
$size = getImageSize($picture);
$width = $size[0];
$height = $size[1];
while($height > 300 || $width > 300) {
$height = $height/2;//тука си избери с колко да го намаля, докато стане 300
$width = $width/2; // тука също
}
print "<img src="".$picture."" height="$height" width="$width" align="right" alt="pic">";
?>

Това е на PHP, мисля, че ще ти послужи :?:

Имам и друг код, но мисля че този ще ти свърши работа.

Да става, но целта е да е максимално жлизко до зададените стойности (в случая 300).
В твоя случай примерно ако картинката е 250Х310 тя ще стане 125Х155(намаляваш двойно) тоест доста по-малка от максималните възможни стойности.
С две думи не е това алгуритъма :) Иначе бързо го измисли :) Имаш информатическо мислене :D Ако имаш да решаваш задача с условие побиране си се справил, но на нас ни трябва побиране в максимална стойност
И другото което е ние не знаем за колко картинки става въпрос тоест ще си го моделирам в функциика, ако го намерите :)
 
jooorooo каза:
Да, аз го написах :-)

Личи си. Стегнато, без коментари и без описателни променливи, писано с удобство на програмиста не на потребителя :)
 
ето още един подобен код:
Код:
<?php

$image = $HTTP_GET_VARS['image'];

if (!$max_width)
  $max_width = 300;
if (!$max_height)
  $max_height = 300;

$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];

$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;

if ( ($width <= $max_width) && ($height <= $max_height) ) {
  $tn_width = $width;
  $tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
  $tn_height = ceil($x_ratio * $height);
  $tn_width = $max_width;
}
else {
  $tn_width = ceil($y_ratio * $width);
  $tn_height = $max_height;
}

$src = ImageCreateFromJpeg($image);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
    $tn_width,$tn_height,$width,$height);
header('Content-type: image/jpeg');
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);

?>

От една книга го взех кода!
 
Мога, да, сетихсе. Обаче с някоя голяма картинка цикъла ще има да се изпълнява, изпълнява....... айде бегам за сега :D ако някои намери по добро от неговото супер :)
 
dkalinkov каза:
ето още един подобен код:
Код:
<?php

$image = $HTTP_GET_VARS['image'];

if (!$max_width)
  $max_width = 300;
if (!$max_height)
  $max_height = 300;

$size = GetImageSize($image);
$width = $size[0];
$height = $size[1];

$x_ratio = $max_width / $width;
$y_ratio = $max_height / $height;

if ( ($width <= $max_width) && ($height <= $max_height) ) {
  $tn_width = $width;
  $tn_height = $height;
}
else if (($x_ratio * $height) < $max_height) {
  $tn_height = ceil($x_ratio * $height);
  $tn_width = $max_width;
}
else {
  $tn_width = ceil($y_ratio * $width);
  $tn_height = $max_height;
}

$src = ImageCreateFromJpeg($image);
$dst = ImageCreate($tn_width,$tn_height);
ImageCopyResized($dst, $src, 0, 0, 0, 0,
    $tn_width,$tn_height,$width,$height);
header('Content-type: image/jpeg');
ImageJpeg($dst, null, -1);
ImageDestroy($src);
ImageDestroy($dst);

?>

От една книга го взех кода!

да това трябва да е :) поне на пръв поглед :)
 
А какво правиме ако се окаже, че картинкаа е различна от jpg? бъгва всичко :-)
 
Намерих я функцията :)

make_thumbnail( $_FILES['file']['tmp_name'], $Maksimum_6irina_ili_viso4ina, $kade_da_go_ka4i );

Ползвам си я за директно оразмеряване при качването на картинката. Аз си качвам оригинала и си правя и малка.

EDIT:: За различно от jpg ей сега ще го оправя
EDIT 2:: Вече може да работи с gif, png и jpg
EDIT 3 :D : Най-добре при качване да правиш малкото копие, защото при повече снимки ако ги правиш всеки път с php при изкарване ще се бави. Имах една галерия и ползвах динамично ресайзване с php и се бавеше доста.

function make_thumbnail($tmp_name, $t, $path)
{
list($width, $height, $type) = getimagesize($tmp_name);

if ($width > $height)
$percentage = ($t / $width);
else
$percentage = ($t / $height);

$w = round($width * $percentage);
$h = round($height * $percentage);

$image_p = imagecreatetruecolor($w, $h);

if ( $type == 1 )
$image = imagecreatefromgif($tmp_name);
elseif ( $type == 2 )
$image = imagecreatefromjpeg($tmp_name);
elseif ( $type == 3 )
$image = imagecreatefrompng($tmp_name);

imagecopyresampled($image_p, $image, 0, 0, 0, 0, $w, $h, $width, $height);

if ( $type == 1 )
imagegif($image_p, $path);
elseif ( $type == 2 )
imagejpeg($image_p, $path, 80);
elseif ( $type == 3 )
imagepng($image_p, $path);

return true;
}
 
Има ли златари кадето позлатяват хора ?!
Мерси много ще ви направя айран :D
Тука в уеб-тура се намира повече от колкото в чуждестранни сайтове..... верно че ние сме адските компютърджии и програмисити ама чак пък толковаааааааа :) Това ако тръгна да го мисля сам незнам дали 2 седмици ще ми стигнат :D
 

Back
Горе