Како направити Умањени приказ слике помоћу ПХП
Дакле, желите да направите минијатуру из дате слике ... ПХП олакшава овај задатак. Први пут сам написао функцију испод да се баве слике које корисници на сајт који сам помоћ управљају. Уплоадед слике на овом сајту могу бити ЈПЕГ, пнгс или ГИФ, па сам морао да напишем функцију да се баве сва три. Овај код је изворно заснива искључивање функције наћи на вебцхеатсхеет.цом
Како то да урадите:
Функција цреатеТхумбс ($ патхТоИмагес, $ фнаме, $ патхТоТхумбс, $ тхумбВидтх)
(
/ / Анализирати путању за проширење
$ Инфо = патхинфо ($ патхТоИмагес фнаме. $);
/ / Даље само ако је то ЈПЕГ слика
($info['extension']) == 'jpeg') ) иф ((стртоловер ($ инфо ['продужетак']) == 'јпг') | | (стртоловер ($ инфо 'продужетак'] [) == 'јпег'))
(/ / Учитавања слике и добити слику
$ Имг = имагецреатефромјпег ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);/ / Сачувате минијатуру у датотеку
имагејпег ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");)
ако (стртоловер ($ инфо ['продужетак']) == 'гиф')
(/ / Учитавања слике и добити слику
$ Имг = имагецреатефромгиф ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);/ / Сачувате минијатуру у датотеку
имагегиф ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");)
ако (стртоловер ($ инфо ['продужетак']) == 'гиф')
(/ / Учитавања слике и добити слику
$ Имг = имагецреатефромпнг ("($ патхТоИмагес) ($ фнаме)");
$ Видтх = имагеск ($ имг);
$ Хеигхт = имагеси ($ имг);/ / Израчунавање величина сличице
$ Нев_видтх = $ тхумбВидтх;
$ Нев_хеигхт = флоор ($ висина * ($ тхумбВидтх / $ видтх));/ / Направите нову привремену слику
$ Тмп_имг = имагецреатетруецолор ($ нев_видтх, $ нев_хеигхт);/ / Копирање и промену величине слике старе у нову слику
имагецопиресизед ($ тмп_имг, $ имг, 0, 0, 0, 0, $ нев_видтх, $ нев_хеигхт, $ ширина, висина $);/ / Сачувате минијатуру у датотеку
имагепнг ($ тмп_имг, "($ патхТоТхумбс) ($ фнаме)");)
)
Како се то ради
Функција цреатеТхумбс траје четири аргумента.
- $ ПатхТоИмагес -> путању до фасцикле у слику коју је у. То може да изгледа овако: / хоме / цонтент / корисничко име / хтмл / лист / уплоадс /
- $ Фнаме -> фајла: пиц1.гиф, јохнни.јпг, итд ...
- $ ПатхТоТхумбс -> путању до фасцикле у коју желите минијатуру да се унутра не желите да то буде исти пут као $ патхТоИмагес, јер минијатуру ће имати исто име као и оригиналне слике.
- $ ТхумбВидтх -> ширина које желите сличице да се у пикселима.
Важна напомена да ћу овде је да је ова функција нема ништа на свом месту, осим екстензија фајла проверити, да бисте били сигурни да датотеке не садрже ништа злонамерно. Пошто датотеке цреатеТхумбс () ради са већ отпремљене се претпоставља да су датотеке правилно размотрити.
Прва ствар цреатеТхумбс () не позива се патхинфо () . патхинфо () паузе делове пута у низу. Ово је корисно за нас, јер нам је потребан ознаку типа датотеке за правилно креирање сличице. Следеће цреатеТхумбс () проверава да ли се ради о јпг. Ако је оригинална датотека у формату ЈПЕГ цреатеТхумбс ствара нову слику на основу оригиналне слике са имагецреатефромјпег () . Следећи корак је да се ширина и висина ове слике ( имагеск () , имагеси () ). Коришћење $ тхумбВидтх и однос ширине и висине оригиналне цреатеТхумбс () поставља нове ширину и висину сличицу. Коришћењем ових нових показатеља цреатеТхумбс () креира "празна" слике која ће бити исте ширине и висине сличице са имагецреатетруецолор () . имагецопиресизед () се користи за промену величине слике и сачувајте је у "празне" управо креирали. имагецопиресизед () можда делује као да је потребно много параметара, али ако погледајте документацију то стварно није толико компликовано. Сада када сличице постоји као прави боји све цреатеТхумбс треба да урадите је претворити фајл у јпег формату. Да бисте то урадили имагејпег () се зове.
То је како функција ради за ЈПЕГ слике. Постоје минималне разлике и пнгс. ГИФ-ови..








































