Създайте миниатюри миниатюри изображения в PHP

Дневен ред - за оразмеряване на изображения и generatsiyathumbnails в pomoschiPHP .От тази тема достатъчно статии. Някои даде само една теория, някои просто практикуват, а някои не разбират изобщо какво написани.
В тази статия аз не искам да навлизам в теорията на миниатюри, в начина, по който и че могат да бъдат намалени и отрязани. Ще получите право да практикуват. Смятам, че един скрипт създаване на миниатюри и умалени изображения.
Създаване на миниатюри PHP
На първо място, две неща. На първо място, аз ще използвам термина оригинални графични и платно миниатюри. Ако първият ясен, а след това на втория, ще обясня, че ние сме от оригиналното изображение ще се копира образа, създаден наново, което е, в действителност ще бъде създаден на платното за миниатюрите. На второ място, направете списък на имоти, че скриптът трябва да има.
Задачата - да се създаде сценарий за работа с изображения, със следните характеристики:
- Той трябва да работи с JPEG, GIF, PNG.
- Тя позволява да се намали снимката до определена височина или широчина
- Това ви позволява да създадете миниатюри (миниатюри) снимки, се подчиняват на правилата:
а) Ако ширината и височината на оригиналното изображение повече. от миниатюрите на платното, изображението трябва да бъде намалена, така че тя напълно е заета областта на миниатюрен платно. В този случай, ако някои от намалената картинката ще излезе извън рамките на миниатюрен платното, те трябва да бъдат отрязани.
б) Ако ширината на изображението е по-голяма. от ширината на миниатюра на платното, а височината е по-малка. изображението е центрирана върху миниатюра платно, неговите изпъкнали части са отрязани и празните пространства са пълни с определен цвят.
в) Ако височината на изображението повече. от височината на миниатюрен платното, а ширината е по-малко. изображението е центрирана върху миниатюра платно, неговите изпъкнали части са отрязани, а пространството се запълва с определен цвят.
ж) Ако височината и ширината на изображението по-малък. от височината и ширината на платното миниатюрен, изображението е центрирана върху миниатюрите на платно, а свободното пространство е изпълнено с определения tsvetov.Funktsiya представени по-долу. Така че, нека сега разгледаме функция, която изпълнява всички елементи, изброени по-горе.
Линии 1-2. Инициализиране функция. $ Src - името на изходния файл, $ Цел - името на генерирания файл, ширината $, $ височина - ширина и височина в пиксели на генерираното изображение. Допълнителни параметри: $ RGB - цвета на фона, по подразбиране - черен, качество $ - качество на генерираните JPEG, по подразбиране - максималната (100).
Линия 3. Проверете дали има определен файл, и ако не е, функцията връща лъжа.
Линия 4: Извиква функцията getimagesize и получената маса се поставя в размер на $.
Line 5. Проверете в резултат на размера на изображението - ако тя не минава, а след това функцията връща лъжа.
String 6. Ако нарича функция ширината и височината премина нула, а след това една и съща функция връща лъжа.
String 7-8. Извадете оригиналното съотношение на мим-тип.
Редове 9-10. Според влачеха графични формати са имената на две функции за работа с изображения. Това е в подкрепа формат GIF, JPG и PNG.
String 11-12. Проверете дали съществуват такива функции, ние създаваме низ преди.
13. Call низа създадохме функция (което imagecreatefrom).
Ред 14. Ако функцията е била прехвърлена на височина, равна на нула, това означава, че е необходимо да не се създава миниатюри, но просто от изображение с определена максимална ширина.
Line 15. Compute новата височина изображението въз основа на входящи параметри и предава максималната ширина.
Ред 16. Създаване на празен образ на реалните цветове.
Редове 17-18. Функцията е на оригиналното изображение, везни и прехвърли новосъздадените платното (от линия 16).
Редове 19-20. Снимка ще бъдат записани във файла. В този случай, ако един файл във формат, функцията се нарича с качеството на трансфера на JPG за него.
Подобна линия 22. Линия 14 се смята само за случаите, когато широчината на нула е изпратена.
Редове 23-28. Ще дойда с редовете 15-20.
30. Ако низът премина нормално ширина и височина, а след това на следващия блок от код.
Редове 31-32. Тя създава образ на реалните цветове и пълни с желания цвят.
Ред 33. Ако височината и ширината на зареден изображението е по-малка от ширината и височината на миниатюрата на платното, след което ...
Редове 34-35. Ние изчисляваме позицията на вдлъбнатината в горната част и на ляво, за да поставите на оригиналното изображение върху умалено платното.
Редове 36-39. Копирайте оригиналните изображения върху миниатюрите на платно и го запишете във файл.
Ред 41. Ако ширината на оригиналното изображение е по-малка от широчината на платното, а височината на повече от ...
String 42-47. Приблизително същите, както в редовете 34-39.
Редове 49-55. Подобно на линия 41-47, но тук, в случаите, когато широчината на оригиналното изображение върху ширината на платното и височина по-малко.
Ред 57. По време на нея блок от код се отнася за случаите, когато ширината и височината на оригиналния по-голяма от ширината и височината на миниатюрата на платното.
Редове 58-61. Назначете нов ширина на изображението и, според него, пропорционално за пресмятане на височината. Тогава ние изчисли координатите на отстъп, че картината е по средата на платното.
Редове 62-67. Ако при преизчисляване в предходната алинея, се оказа, че височината е по-малка от височината на миниатюрата на платното, тук ние вече зададете нов височина на изображението и го изчисли въз основа на широчината. След това се изчислява координатите на отстъп, че картината е по средата на платното.
Редове 68-70. Създаване на нов истински цветно изображение и да копирате това да се намали на оригиналното изображение.
Редове 71-72. Получени последна точка на изображението сега се копира в миниатюри платното.
Редове 73-74 са вече познати - те запишете файла.
Редове 75-78. Свободна памет от изображения, създадени темпо.
И сега очевидният пример. След това мисля, че това е просто.