Премини към съдържанието
accorp

Преоразмеряване на изображение с PHP

    Препоръчан отговор


    Написах един скрипт, който уж трябва да намаля големи картинки. Локално проблем няма, обаче качен на сървър не ще да работи:

    $image = $_GET['image'];
    
    $parts = explode(".", $image);
    
    $arr = getimagesize($image);
    
    //arr[0] = width
    
    //arr[1] = height
    
    $width = 500;
    
    $height = 500;
    
    if($arr[0] > $width or $arr[1] > $height){
    
    	if($arr[0] >= $arr[1]){ // width > height
    
    		$ratio = $arr[0] / $arr[1];
    
    		$height = $width / $ratio;
    
    	}
    
    	else{ // height > width
    
    		$ratio = $arr[1] / $arr[0];
    
    		$width = $height / $ratio;
    
    	}
    
    	$image_p = imagecreatetruecolor($width, $height);
    
    	$newImage = imagecreatefromjpeg($image);
    
    	imagecopyresampled($image_p, $newImage, 0, 0, 0, 0, $width, $height,$arr[0], $arr[1]);
    
    	imagejpeg($image_p, $image, 100);
    
    }
    
    echo "&oper=done";

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Цялата работа е е във флаш откъдето го викам. Схемата е такава, че първо ъплоудвам катинка и името го пращам по GET , обаче това php изобщо не се вижда, защото с флаш го викам с LoadVars и не работи, а когато го отворя в нов прозорец, т.е. спокойно да си се извърши няма проблем. Иначе да правя цяла база данни за един ресайз... няма смисъл :yanim:

    Ако не разбираш от флаш - с две думи проблема е от там, не от php-то.

    Благодаря!

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Здравей,

    за да не ти работи скрипта на отдалечения сървър, а на локалния да няма проблеми има няколко причини:

    1. Не са инсталирали GD2 библиотеката (има и други библиотеки, но тази като че ли е най-удобна)

    2. Не си дал права за писане в папката където се записва преоразмерената картинка

    Най-лесният вариант е да ползваш някое готово класче (class watermark или нещо друго). Това би ти спестило и писнаето на други функции, като конвертиране на форматите, преоразмеряване, слагане на воден знак и т.н..

    П. С. ако се спреш на готов клас не ти отпада необходимистта от GD2 библиотеката, както и от правата за писане в папката с файла.

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    По добре си направи една таблица ...

    Иначе да правя цяла база данни ...

    1. Ами досега си мислех, че има разлика между таблица и база данни, ама изглежда, че не съм чак толкова добре осведомен.

    2. В кода, който си дал има само РНР и никъде не си казвал, че ползваш flash. Все си мисля, че тука не сме се събрали врачки!!!

    3. Като почнете да пускате някой пост поне се постарайте да обясните ясно всичко, което искате

    Редактирано от bgfreak (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    @bgfreak, не се ядосвай, когато пуснах темата смятах, че проблема е в php-то, но съм грешал. Съжалявам за изгубеното време и благодаря за отзивите.

    Лек ден и на двамата.


    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    Мисля, че написаното от мен си е в сила и за флаша :ph34r: .

    Идеята за готов клас не ме привлича особено, но ако се интересуваш проблема беше в LoadVars.sendAndLoad, бях задал метод GET за изпращане и затова връщането на резултат не излиза както трябва. : )

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Важното е, че си успял да си решиш проблема.

    Лично мнение: Все пак няма нищо лошо да се ползват готови класове (независимо дали писани от теб или от някой друг). Не мисля, че е необходимо всеки път да се пише нещо едно и също (ах тази страст по класове и обекти :ph34r: ).

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Най-тъпото нещо, което някой "програмист" може да направи е да използва готов код!!!!!!!!!!!!!!!!!

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

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

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    Най-тъпото нещо, което някой "програмист" може да направи е да използва готов код!!!!!!!!!!!!!!!!!

    Така е, и не е така. За Delphi например има хиляди готови, отлично написани и тествани компоненти.

    Според теб не трябва да се използват. А кога ще си свърши човек работата ако трябва да си ги пише сам ?

    За някой специфични неща, наистина е по-добре сам да си ги напишеш, но това което вече го има създадено, е глупаво да не се използва.

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове
    Най-тъпото нещо, което някой "програмист" може да направи е да използва готов код!!!!!!!!!!!!!!!!!

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

    Както е писал cecov - ако пишеш винаги всичко отначало никога няма да си предадеш проекта навреме ;) . Винаги е по-добре да си напишеш един клас и да го ползваш когато ти трябва, а не да пишеш нови функции за всеки проект. И не виждам кое е тъпото да ползваш класове писани от други (open source проекти разработвани от професионалисти с подробна документация).

    П.С. Предлагам да продължим спора ни в тема с друго заглавие и да не спамим повече темата на човека

    Редактирано от blackbebo (преглед на промените)

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Регистрирайте се или влезете в профила си за да коментирате

    Трябва да имате регистрация за да може да коментирате това

    Регистрирайте се

    Създайте нова регистрация в нашия форум. Лесно е!

    Нова регистрация

    Вход

    Имате регистрация? Влезте от тук.

    Вход


    ×

    Информация

    Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.