bartu$
3.04.2004, 19:14:34
Mam pytanie czy php potrafi i poradzi sobie ze skalowaniem obrazow.
Chodzi o skalowanie bez pikselizacji, wykorzystujac interpolacje dwuliniowa, i probkowanie pikseli obrazu wejsciowego.
Wiem ze php jest bardzo wydajny, ale czy poradzi sobie z tym ?
Jesli ktos zna odpowiedz, lub nawet jesli ktos ma juz taki skrypt albo wie skad moglbym cos takiego sciagnac, bylbym wdzieczny za wszelka pomoc.
Bardzo jest mi potrzebny taki skrypt/program a bardzo chce skorzystac tu z php, gdyz jego skladnia jest wg. mnie przyjemniejsza od innych jezykow programowania.
Pozdrawiam.
halfik
3.04.2004, 20:08:27
No php jest dobry, ale nie aż tak

Są tam jakieś bajerki od wygładzania itd. ale to nie to, czego Ci potrzeba. Oczywiście mogę się mylic, bo za dużo się nie przyglądałem funkcją z bibliotek spod rodzinki GD - tyle co mi było trzeba to wiem, a nie potrzebowałem nigdy rozciągać grafiki i do tego wszystko tak wygładzić żeby nie robiła się pikseloza.
bartu$
3.04.2004, 20:23:43
Dziekuje Halfik za Twoja odpowiedz na moje pytanie.
I bardzo prosze innych, zwlaszcza tych co jednoznacznie moga powiedziec "tak" lub "nie" na pytanie czy php sie do tego nadaje.
Chodzi o skalowanie i probkowanie pixel po pixelu.
Ja dotychczas pisalem skrypty do obslugi formularzy
Dlatego teraz siedze i czytam o bibliotece GD. Nie wiem czy nie szkoda czasu.
Jesli ktos ma źródła lub wie skąd ściągnąć źródła tak działającego programu - niekoniecznie napisanego w php, to bardzo prosze o pomoc.
halfik
3.04.2004, 20:26:23
Odpowiedź brzmi: nie. Przynajmniej jeszcze nie teraz. To co ma php, to raczej do prostego generowania prostych grafik, to jeszcze nie jest openGL lub DirectX
orson
3.04.2004, 20:46:04
witam ...
sam php i gd ci tego nie zrobi ... ale mozesz sie zainteresowac moze jakims konwerterem ... czyms co mozesz wywolac z linij polecen ... na *nixach na pewno cos takiego jest ... a na win nie wiem czy infran_view nie ma wywolywania z linji ...
cya
bartu$
3.04.2004, 20:50:29
Dziekuje za odpowiedzi ale poszukuje pelnej implementacji algorytmu skalowania.
Pozdrawiam.
Witam
Spróbuj skorzystać z tego - upewnij się, że na pewno masz GD2
[php:1:b3bec9e6ed]<?php
// plik generowania miniatur
if($file && $width && $height) // nazwa pliku - max szerokosc miniatury - max wysokosc miniatury
{
$photo="../".$_site[imagedir].$file;
$photosize=getimagesize($photo);
if($photosize[2]==1)$photofile=imagecreatefromgif($photo);
if($photosize[2]==2)$photofile=imagecreatefromjpeg($photo);
if($photosize[2]==3)$photofile=imagecreatefrompng($photo);
$photoX[0]=round($width/$photosize[0],10);
$photoX[1]=round($height/$photosize[1],10);
if($photoX[0]>$photoX[1])$photoX[2]=$photoX[1];
else $photoX[2]=$photoX[0];
$newimagesize[0]=ceil($photosize[0]*$photoX[2]);
$newimagesize[1]=ceil($photosize[1]*$photoX[2]);
if($newimagesize[0]>$width)$newimagesize[0]=$width;
if($newimagesize[1]>$height)$newimagesize[1]=$height;
if(function_exists(imagecreatetruecolor))$newimage=imagecreatetruecolor($newimag
size[0],$newimagesize[1]);
else $newimage=imagecreate($newimagesize[0],$newimagesize[1]);
if(function_exists(imagecopyresampled))imagecopyresampled($newimage,$photofile,0
0,0,0,$newimagesize[0],$newimagesize[1],$photosize[0],$photosize[1]);
else imagecopyresized($newimage,$photofile,0,0,0,0,$newimagesize[0],$newimagesize[1],
photosize[0],$photosize[1]);
header("Content-type: image/png");
imagepng($newimage);
imagedestroy($newimage);
}
?>[/php:1:b3bec9e6ed]