Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

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

 

Промяна на размер на снимка

Featured Replies

Здравейте,

Опитвам се да променя размера на снимките, които генерирам на php, така че снимката да запази цялостта си и да е пропорционална. Дотук намерих някакви библиотеки и метод чрез resampling, но искам някой опитен накратко да ми обясни как да постигна оразмеряването чрез най-добрия и лесен метод. Задачата, която имам е да чета папка и да показвам изображения на AJAX, jQuery и PHP. Всичко работи само искам да оправя размера на снимките на php, защото снимките могат да са с различни размери и не мога всяка една поотделно да оразмерявам на софтуер, тъй като по-късно ще позволявам на потребителя да качва снимки и всеки ще ги качва с различни размери. Благодаря предварително. :)

<?php


    $folder = "images";
    $files = scandir($folder);
    $random = 0;
    $count = 0;

    $exclude = array('.', '..', '...', '.DS_Store');
    $result = array(); 

        foreach($files as $item){
            
            if(!in_array($item, $exclude)){
                
               $result[] = $item;
            }
            
         }
print_r($result);
    $random = rand(0, count($result)-1);
  echo "<img src='images/".$result[$random]."' /><br/>";
  echo"This is a photo";



    function resizePhoto(){
        
        //How to resize photos
        
    
    }



?>

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

  • Автор

Размер на снимки се променя,с която и да е фото обработваща програма.

Може би не ме разбрахте правилно. Аз се опитвам на php да ги оразмеря. Затова пиша в този раздел.

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

Може би не ме разбрахте правилно. Аз се опитвам на php да ги оразмеря. Затова пиша в този раздел.

 

Ами виж на HTML как се задава размера. И после от РНР с echo, както май правилно си се ориентирал, пишеш в РНР документа точно същото.

 

Туториали със сорс код има във w3schools и tutorialspoint

 

А може и с fopen, да отвориш файла и да намериш мястото, където трябва да пишеш за имиджа и размера и да го напишеш. С команда за писане във файл разбира се. Или да прочетеш файла в променлива, да намериш мястото, да промениш променливата със съответния текст и пак да я запишеш като файл със същото име.

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

  • Автор

Ами виж на HTML как се задава размера. И после от РНР с echo, както май правилно си се ориентирал, пишеш в РНР файла точно същото.

 

Туториали със сорс код има във w3schools и tutorialspoint

 

А може и с fopen, да отвориш файла и да намериш мястото, където трябва да пишеш за имиджа и размера и да го напишеш. С команда за писане във файл разбира се.

Да това с HTML работи, но не мисля, че е добра практика понеже се пише CSS в елемента. Другата причина поради която искам чрез скрипт да постигна промяната на размера е, защото понякога не работи стила в html. Ще прикача снимка, за да покажа какво имам предвид.Бмв-то е изрязано, когато сложа 500 на 500 пиксели в HTML.

post-291117-0-53134300-1425315115_thumb.

post-291117-0-89849200-1425315176_thumb.

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

Размер на снимки се променя,с която и да е фото обработваща програма.

Ами виж на HTML как се задава размера. И после от РНР с echo, както май правилно си се ориентирал, пишеш в РНР документа точно същото.

 

Не се спряхте да пишете глупости.  :clown:

  • Автор

Не се спряхте да пишете глупости.  :clown:

Може ли кратко обяснение за това твърдение? :)

Може ли кратко обяснение за това твърдение? :)

 

<!DOCTYPE html>
<html>
<head>
<style>
img.good {
    height: auto;
    width: 40%;
}
</style>
</head>


<body>

<img class="good" src="goodpicture.gif"><br>

</body>
</html>
А няма ли да ти свърши работа, ако със CSS зададеш ширината ръчно в проценти, а височината да е ауто. Написах го и с код, щото термините не ги познавам добре и излизат глупости и ме пишат в бисерите

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

Накратко. С няколко думи.

Отваряш документацията на PHP-то и по-точно раздела Image Processing and Generation. От там си избираш библиотека - GD, ImageMagic, Gmagick... Намираш функциите/методите за изчитане на изображение. Изчиташ го. Ако работиш със streams, не забравяй да ги отваряш бинарни. Намираш функциите/методите за извличане на мета-данни от изображенията, теб те интересуват широчина и височина. От тях разбираш снимката права ли е или легнала. След това намираш съотношението между размерите. На по-големия от двата размера даваш интересуващият те размер, а на по-малкия даваш интересуващият те умножен по отношението. Намираш си функциите/методите за преоразмеряване (resize) на изображение и преоразмеряваш. Сбарваш streama, принтваш HTTP хедър Content-Type: image/<съответния-тип-изображение-тук>, принтваш втори HTTP хедър Content-Length: <дължината-на-streama-тук> и след това принтваш изходният stream - задължително бинарно в изходящият буфер. Готово. Вече си имаш *.php файл, който чете файлове, преоразмерява ги пожелание и ги показва в браузъра. Остава в src атрибута вместо да пишеш името на картинката, да пишеш името на този *.php файл със съответните QueryString параметри (идентификатор на изображението И новият му размер) и си готов. Сега вече имаш един изходник за всяка картинка и възможност да я показваш в безброй различни размери като я преоразмеряваш в полет. Тъй като преоразмеряването е тежка операция, може да помислиш за кеш на най-често използваните размери.

Хайде прочети помисли, ако има нещо неясно прочети и помисли отново. Ако пак не захване искрата ще помогнем пак...

Успех!

Аз имам въпрос, щото и аз не ги разбирам твърде хедърите.

Това от къде да чета го разбрах. С хедъри вече направих едно първобитно приложение. Горе долу добих смътна представа как се праща информация от сървъра към клиента.

Въпроса ми е, за да има общуване, как се чака за информация от клиента. Нямам предвид хтмл формите. Как става с хедъри.

Ако може и пример с код

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

Кажи какво по--точно не ти е ясно по отношение на хедърите и какво би искал да научиш, за да знаем какво да изясняваме...

Не ми е ясно как става общуване. Как се постига интерактивност. Само на РНР. Как да се направи приложение, без да се използват HTML

форми за изпращане на информация от клиента към сървъра.

Например, мога да направя форум, но не мога да направя чат.

Как става приложението, което се изпълнява в момента на сървъра да "слуша" за събития от това което прави клиента.

Както е на скайп например. Без да рефрешвам нищо и излиза какво ми пишат

Например ако клиента кликне върху линк с РНР файл, оттам мога с хедър да изпратя нещо. Тази концепция ми е що годе ясна.

Не ми е ясно как да стане като на скайп, той докато прави нещо, сървъра да получава информация.

Приеми го така. Хедърите в HTTP комуникацията са мета-данни. Те сами по себе си са инструкции за интерпретация на рикуеста от сървърският хендлър (в твоя случай PHP файла) и съответно на риспонса от юзър ейджънта (забележи, браузърът е само вид юзър ейджънт). Истинските данни минават по два канала. Входните данни  се подават или чрез куери стринга или като съдържание  на самият рикуест. Изходните данни идват като тяло на риспонса. Това по отношение на хедърите и начините за предаване на данни.

 

Сега, малко за Web технологията. Оригинално, уеба е замислен да работи като тин-клиент - сървър архитектура. Т.е. клиента казва, какво иска, сървъра обработва данните и ги връща готови за презентация. С други думи инициативата е винаги в ръцете на клиента. Така че, чата е възможен но само до поискване :) В по-съвременните приложения, стратегията е поизместена. Отново всичко е в ръцете на клиента, но вече той само обменя данни, презентационната логика е отнета от сървъра и съсредоточена в ръцете на клиента. Така разработчиците успяват да правят сингъл пейдж апликейшъни, които се отличават с повишена интерактивност, като за целта се ползват услугите на XMLHttpRequest и WebSocket обектите. Ако искаш да правиш Скайп с HTML и JavaScript, е редно да се насочиш натам. Около това са завъртяни много фреймуърки, най-простата, която може да ползваш е jQuery... Най-завъртяната, която съм пипал е angularjs. И двете са клиентски. Нейтив сървър сайд съпорт за УебСокети на PHP доколкото знам няма... Има разни фреймуърки, но не знам доколко са читави.

Приеми го така. Хедърите в HTTP комуникацията са мета-данни. Те сами по себе си са инструкции за интерпретация на рикуеста от сървърският хендлър (в твоя случай PHP файла) и съответно на риспонса от юзър ейджънта (забележи, браузърът е само вид юзър ейджънт). Истинските данни минават по два канала. Входните данни  се подават или чрез куери стринга или като съдържание  на самият рикуест. Изходните данни идват като тяло на риспонса. Това по отношение на хедърите и начините за предаване на данни.

 

Сега, малко за Web технологията. Оригинално, уеба е замислен да работи като тин-клиент - сървър архитектура. Т.е. клиента казва, какво иска, сървъра обработва данните и ги връща готови за презентация. С други думи инициативата е винаги в ръцете на клиента. Така че, чата е възможен но само до поискване :) В по-съвременните приложения, стратегията е поизместена. Отново всичко е в ръцете на клиента, но вече той само обменя данни, презентационната логика е отнета от сървъра и съсредоточена в ръцете на клиента. Така разработчиците успяват да правят сингъл пейдж апликейшъни, които се отличават с повишена интерактивност, като за целта се ползват услугите на XMLHttpRequest и WebSocket обектите. Ако искаш да правиш Скайп с HTML и JavaScript, е редно да се насочиш натам. Около това са завъртяни много фреймуърки, най-простата, която може да ползваш е jQuery... Най-завъртяната, която съм пипал е angularjs. И двете са клиентски. Нейтив сървър сайд съпорт за УебСокети на PHP доколкото знам няма... Има разни фреймуърки, но не знам доколко са читави.

 

Благодаря !

 

Вчера прочетох за аякс и обекта XMLHttpRequest. Намерих и работещи примери. Хелоу уърлд за аякс един вид. 

Нейтив сървър сайд съпорт за УебСокети на PHP доколкото знам няма...

 

Това не върши ли работа? :P

http://php.net/manual/en/book.sockets.php

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

Това не върши ли работа? :P

http://php.net/manual/en/book.sockets.php

 

Тц! Това е за обикновени сокети. УебСокетите са строени върху HTTP, а HTTP-то е специализация на тези сокети дето ги показваш. Има много специфика...

Тц! Това е за обикновени сокети. УебСокетите са строени върху HTTP, а HTTP-то е специализация на тези сокети дето ги показваш. Има много специфика...

 

А това:

http://socketo.me/

Това е една от споменатите фреймуърки. Но забележи, тя не работи хостната в Уеб Сървър-а, както стандартно PHP файловете правят. Доколкото разбирам тя работи като стенд-алон УебСокет хендлър. Един вид, малък Node.JS но на PHP. Не съм потъвал дълбоко в дебрите на PHP света от около (малии ще станат вече 10 години). На моменти даже се радвам.

Не съм потъвал дълбоко в дебрите на PHP света от около (малии ще станат вече 10 години).

 

Ето ти нещо модерно, специално като за теб:

http://symfony.com/doc/current/book/index.html

:P

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

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

 

Има си всички новости в уеб архитектурата - сървис ориентирано е, използва DI, използва ORM ала Hibernate, има си темплейтинг с унаследяване, удобно е за Unit Testing, използва Reflection programming. Все готини нещица. :)

Платформа нова викаш... Език? IDE? Дебъгер? Рефакторинг? Свестен интелисенс?

 

PHP фреймуърчец. :)

PHP IDE-та с глезотийки - колкото искаш.

За дебъгче - ето нещо интересно: http://xdebug.org/index.php.

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

А пък рефакторингът вече си зависи от програмистките умения на девелопера. :P

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

Архивирана тема

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

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.