PHP class

7 отговора 168 прегледа
#1

PHP class

namerih edin class na PHP, kojto mi trqbwa za da mi namlqwa razmera na kartinki sled kato se uploadwat , samo 4e iskam da znam kak moga da go izpolzwam tozi class fajl .
class faila mi se kazwa "class.img2thumb.inc"
qsno 6te go includna vuv fajla kudeto 6te imam obru6tenie kym nego, no
kude trabwa da go dobawa i sled towa kak da go izpolzwam
v nqkoq dierektoriq na PHP li trqbwa da e ili moje da e v nqkoq ot potrebitlskite mi direktorii

Отговор
в отговор на noname #2

Re: PHP class

eto kak mi e dadeno 4e trabwa da go izpolzwam sled kato imam nqkqkyv JPG primerno i kato go vizualiziram po sledniq na4in:

<img src="prodava/userpic/<?php echo 'image.php?file='.$m[3[1].'&x=110&y=70';?>" width="110" height="70" border="0">

-------------------
//image.php
<?php
error_reporting(E_ALL);
include 'imoti/class.img2thumb.inc';

$neu = new Img2Thumb($file,$x,$y);
?>

po tozi na4in kartinkata e sus zadadenite razmeri po X i po Y, no razmera i v KB ne e dejstwitelniqt , s cel ako ima mnogo takiwa obeti da se zarejda byrzo stranicata, i ako kartinkata e vruzka sled kato se 6rakne nq neq da se poqwi w dejstwitelniqt razmer

Ta iskam da popitam tozi class file "class.img2thumb.inc" , kude trqbwa da go sloja i po kakyv na4in

Отговор
в отговор на noname #3

Re: PHP class

Уф, съкровище!

То вярно, че немецът е забравил да напише как става номерът, но то се вижда и така.

Значи принципно заедно със inc файла има и още два, нали?
ако не кажи ми да ти ги пратя, въпреки че не са ти необходими.

Значи във твоят html/php файл, в който ще се показва тумбнаил-а, пишеш нещо от рода на:

<img src="show_image_in_imgtag.php?filename=test.jpg&newxsize=80&newysize=80" border="0" >

filename - това ти е името на картинка с оригинална големина
newxsize и newysize - това са ти размерите на тумбнаил-а.
border - qsno e

show_image_in_imgtag.php - името на PHP файла, който ще ти обработва картинката. Какво има в него ли? ами ето това:

<?php

// Image2Thumbnail - Klasse einbinden - демек: вмъкване на класа във файла
include("class.img2thumb.inc");

// neues Objekt anlegen - демек - създаване на нов Обект

$neu = new Img2Thumb($filename,$newxsize,$newysize,$fileout);


?>

Забележи как е зададен обекта:

Img2Thumb - Името му!!! Винаги е такова
$filename - името на картинката....това го задаваш в началният html/php файл, при img таг-а
същото важи и за останалите $newxsize и $newysize

За какво се исползва $fileout можеш да поразгледаш по-подробно твоят img2thumb клас.

Надявам се това да ти свърши работа. Аз лично току що за пръв път чух за този клас и първо трябваше да го потърса в нет-а за да знам за какво става въпрос, защото това, което ти си написал нищо не ми говореше ;)

Айде със здраве и дерзай! ;)

Мира


PS. Междудругото, ако класът който имаш е същият като този, който намерих , то картинките могат да бъдат само jpg или png

Редактирано от Yoro на

Отговор
в отговор на Yoro #4

Re: PHP class

Ok no ne mojah da razbera classa "inc" faila ima li zna4enie kude 6te go sloja, dali v direktoriqta na php ili v koqto i da e direktoriq, ili v nqkoq to4no opredelena direktoriq

Отговор
в отговор на Yoro #5

Re: PHP class

Vsi4ko e OK.
Usopqh da go podkaram daje rezultate e vpe4atlqwasht probwah JPG kojto w 300 K i stana 5 K, razbira se ka4estwoto mu ne be6e dobro.
Ima li nqkakyv variant da se butne ne6to v class-a i da se regulira kompresiqta, tq samo ot razmera po X i Y koito se predawat kato parametyr li se opredelq v slu4aq

Отговор
в отговор на noname #6

Re: PHP class

извинявай
въпросът ти по отношение на директорията, явно съм го пропуснала някъде докато се опитвах да разбера как работи скрипта

първо: от GD и изобщо работата на РНР с графики почти нищо не разбирам ;) Единственият ми опит беше с upload. ;)

второ: след разглезждане на функциите на класа стигнах до извода, че това, което явно е отговорно за качеството на новата картинка (добре би било да покажеш как е оригинал и как е Thumbnail) е този ред във function NewImgResize($orig_img,$newxsize,$newysize,$filename)

ImageCopyResampled($im_out, $orig_img, 0, 0, 0, 0, $newxsize, $newysize,$orig_size[0], $orig_size[1]);

Това ти преиначава картинката до съответните размери. (Поне така разбирам обясненията в Reference Manual-a на РНР).

Явно това е и "виновника".

Цялата функция излежда така:


$orig_size = getimagesize($filename);

if ($orig_size[0]<$orig_size[1]){
$newxsize = $newysize * ($orig_size[0]/$orig_size[1]);
}
else{
$newysize = $newxsize / ($orig_size[0]/$orig_size[1]);
}

$im_out = ImageCreateTrueColor($newxsize,$newysize);

ImageCopyResampled($im_out, $orig_img, 0, 0, 0, 0, $newxsize, $newysize,$orig_size[0], $orig_size[1]);

return $im_out;


Някой да има идеи?

и в отговор на въпросът ти: явно се определя от X и Y и от оригиналните размери на картинката как ще изглежда полученият Thumbnail.

Отговор
в отговор на noname #7

Re: мъка

как успяваш да се тормозиш толкова време над няколко дузини реда код та пак и клас си намерил. ако прочетеш PHP функции за Image ще видиш че можеш да управляваш компресиата като параметър в ImageJpeg, както и ако имаш навик да четеш узвер комментс та да си вземеш малко акъл четейки за imageresamplebicubic i za passthrow.

-----------------------
гърбавия ковчег ще го изправи
Отговор
в отговор на Дpeмeщ #8

Re: мъка

a be to nali triabva malko trud da se polozi -> RTFM , posle proba
nai lesno e da pla4e6 po forumite i da iska6 niakoi da ti go kaze ili napravi

E tuk ni6to niama :[линк]
Отговор