-Ïîäïèñêà ïî e-mail

 

 -Ïîèñê ïî äíåâíèêó

Ïîèñê ñîîáùåíèé â community_coding

 -Ñòàòèñòèêà

Ñòàòèñòèêà LiveInternet.ru: ïîêàçàíî êîëè÷åñòâî õèòîâ è ïîñåòèòåëåé
Ñîçäàí: 29.12.2004
Çàïèñåé:
Êîììåíòàðèåâ:
Íàïèñàíî: 536


Ìàñøòàáèðîâàíèå ôîòîãðàôèé

Ñðåäà, 18 Îêòÿáðÿ 2006 ã. 07:25 + â öèòàòíèê
av3nger âñå çàïèñè àâòîðà Âîïðîñ ïî php. Èìååòñÿ ðÿä ôîòîãðàôèé. Íàäî èõ îòìàñøòàáèðîâàòü ïîä îïðåäåëåííûé ðàçìåð. Äà è íå ïðîñòî îáðåçàòü ïî êðàÿì. À ñäåëàòü òàê, ÷òîáû êàê ìîæíî áîëüøå ôîòêè ñîõðàíèëîñü. Ò.å. óìåíüøèòü ìàêñèìàëüíî, à êðàÿ îáðåçàòü.  èòîãå íàäî ïîëó÷èòü ôîòêó ðàçìåðàìè X íà Y. (X è Y ÿ çàäàþ ñàì).

Äî ýòîãî ÿ äåëàë ýòî òàê:
PHP:

$thumbsize 
= 150;
$imginfo = getimagesize($imgfile);
$width = $imginfo[0];
$height = $imginfo[1];
$imgratio = $width / $thumbsize;
$imgratio = max($imgratio, 1.0);
$newwidth = (int)($width / $imgratio);
$newheight = (int)($height / $imgratio);
$thumb = ImageCreateTrueColor($newwidth,$newheight);
$source = imagecreatefromjpeg($imgfile);
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, (int)$newheight, $width, $height);
imagejpeg($thumb,"../images/gallery/main/main_".$filename,100);
font>



Íî ýòî ëèøü äàâàëî ïðèìåðíûå ðåçóëüòàòû. Ò.å. äîáèòñÿ òàê, ÷òîáû ôîòêà ïî ðàçìåðó áûëà "ïèêñåëü â ïèêñåëü" ìíå íå óäàâàëîñü (äà è íå íóæíî áûëî).
Ó êîãî-íèáóäü åñòü êàêèå-òî èäåè?
Ðóáðèêè:  âîïðîñû

mesca1ito   îáðàòèòüñÿ ïî èìåíè Ñðåäà, 18 Îêòÿáðÿ 2006 ã. 11:49 (ññûëêà)
æèâîòðåïåùóùàÿ òåìà... ó ìåíÿ íà ÐÍÐ ýòî ñäåëàòü òîæå í ïîëó÷àåòñÿ... õîòÿ åñòü ñêðèïò íà Perl'è íà bash'å. ïåðëîâûé ðàáîòàåò íîðìàëüíî (ìîãó ñêîìïèëèòü â äâîè÷êó, åñëè íàäî) à ñ áàøåì òðàáë -- êàðòèíêè ïî ãîðèçîíòàëè ïåðåêàøèâàåò, õîòÿ âðîäå êàê âñå íàïèñàíî íîðìàëüíî..
Îòâåòèòü Ñ öèòàòîé Â öèòàòíèê
ellesar2001   îáðàòèòüñÿ ïî èìåíè Ñðåäà, 18 Îêòÿáðÿ 2006 ã. 15:09 (ññûëêà)
Ïðîïîðöèîíàëüíîå óìåíüøåíèå:
code:
function imageresize($path, $newwidth) {
list($width, $height) = @getimagesize($path);

$newheight = $height/($width/$newwidth);

$new = @imagecreatetruecolor($newwidth, $newheight);
$source = @imagecreatefromjpeg($path);

@imagecopyresized($new, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);

@imagejpeg($new, $path);
}

Èëè òåáå èíîå íóæíî?
Îòâåòèòü Ñ öèòàòîé Â öèòàòíèê
av3nger   îáðàòèòüñÿ ïî èìåíè Ñðåäà, 18 Îêòÿáðÿ 2006 ã. 15:33 (ññûëêà)
ellesar2001, íå, ïðîïîðöèîíàëüíîå óìåíüøåíèå ïîéäåò ëèøü â òîì ñëó÷àå, åñëè ðèñóíêè âåçäå îäíîé è òîé æå ïðîïîðöèè. à åñëè ó ìåíÿ îäíè 150px íà 20px, äðóãèå 150õ150, à òðåòèå 60õ120. âñå ðàâíî óìåíüøèòü âñå ðèñóíêè îäíîâðåìåííî äî 32õ11 íå ïîëó÷èòñÿ.
Îòâåòèòü Ñ öèòàòîé Â öèòàòíèê
av3nger   îáðàòèòüñÿ ïî èìåíè Ñóááîòà, 21 Îêòÿáðÿ 2006 ã. 01:28 (ññûëêà)
âðîäå áû, ðàçîáðàëñÿ.

cropW è cropH îòâå÷àþò çà øèðèíó è âûñîòó.

code:
$imginfo = getimagesize($imgfile);
$width = $imginfo[0];
$height = $imginfo[1];
$cropStartX = round($width/2)-80;
$cropStartY = round($height/2)-60;
$cropW = 144;
$cropH = 119;
$origimg = imagecreatefromjpeg($imgfile);
$cropimg = imagecreatetruecolor($cropW,$cropH);
list($width, $height) = getimagesize($imgfile);
imagecopyresized($cropimg, $origimg, 0, 0, $cropStartX, $cropStartY, $width, $height, $width, $height);
imagejpeg($cropimg,"../images/gallery/main/main_".$filename,100);
imagedestroy($cropimg);
imagedestroy($origimg);


äà. è ïðåäâàðèòåëüíî ÿ óìåíüøàþ ôîòêó ïðîïîðöèîíàëüíî äî áîëåå ìàëåíüêîãî ðàçìåðà (â ýòîì ñëó÷àå äî 200 ïî øèðèíå). è òîãäà ïðè îáðåçàíèè ôîòêè êàê ðàç âèäíî áîëüøóþ ÷àñòü ôîòîãðàôèè.
Îòâåòèòü Ñ öèòàòîé Â öèòàòíèê
Êîììåíòèðîâàòü — Ê äíåâíèêó — Ñòðàíèöû: [1] [Íîâûå]
 

Äîáàâèòü êîììåíòàðèé:
Òåêñò êîììåíòàðèÿ: ñìàéëèêè

Ïðîâåðêà îðôîãðàôèè: (íàéòè îøèáêè)

Ïðèêðåïèòü êàðòèíêó:

 Ïåðåâîäèòü URL â ññûëêó
 Ïîäïèñàòüñÿ íà êîììåíòàðèè
 Ïîäïèñàòü êàðòèíêó