GD நூலகத்தைப் பயன்படுத்தி வரைபடத்தை உருவாக்குதல். PHP இல் வரைபடங்களை வரைதல் நாம் என்ன மாற்றினோம்

இணைய காட்சிகளில் கிராபிக்ஸ் கருவிகளின் பயன்பாடுகளை அடையாளம் காண, பின்வரும் சாத்தியமான கிராபிக்ஸ் பயன்பாட்டு நிகழ்வுகளைக் கவனியுங்கள்:

  • நிலையான படங்கள், சுயாதீனமாக உருவாக்கப்பட்ட அல்லது எங்கிருந்தோ கடன் வாங்கப்பட்டவை, ஒரு HTML பக்கத்தில் உட்பொதிக்கப்படலாம்.
  • நிரலாக்க ரீதியாக உருவாக்கப்பட்ட படங்களை (HTML + CSS) பயன்படுத்தலாம்.
  • ஸ்கிரிப்டை செயல்படுத்தும் போது ஏற்படும் சாத்தியமான எல்லா சூழ்நிலைகளுக்கும் முன்கூட்டியே நிலையான கிராபிக்ஸ் உருவாக்க gd நூலகத்தைப் பயன்படுத்தலாம், அவற்றை கோப்புகளில் சேமித்து அவற்றை நிபந்தனையுடன் காண்பிக்கலாம்.

அதன் எளிமை காரணமாக நிலையான படங்களைப் பயன்படுத்தி கிராபிக்ஸ் செயல்படுத்தும் விருப்பத்தை நாங்கள் கருத்தில் கொள்ள மாட்டோம், எனவே முதலில் ஒரு எளிய விருப்பத்தை (HTML + CSS கிராபிக்ஸ்) கருத்தில் கொள்வோம், பின்னர் PHP இல் gd நூலகத்தைப் பயன்படுத்துவதைக் கருத்தில் கொள்வோம்.

கிராபிக்ஸ் HTML + CSS

இணையத்தள பார்வையாளர்கள் வண்ணப் பக்கங்களைக் கொண்ட கிடைமட்ட பட்டை வரைபடங்களை நன்கு அறிந்திருக்கிறார்கள், அவை பெரும்பாலும் கணக்கெடுப்பு முடிவுகளை விளக்குவதற்குப் பயன்படுத்தப்படுகின்றன. முதல் பார்வையில், அத்தகைய வரைபடங்களை உருவாக்க சில வகையான வரைகலை கருவிகள் பயன்படுத்தப்படுவது போல் தெரிகிறது, ஆனால் உண்மையில், சில எளிய ஸ்கிரிப்ட்களைப் பயன்படுத்தினால் போதும்:

PHP, HTML, CSS /* CSS பாணிகளில் கிராபிக்ஸ் மூலம் பணிபுரிதல் */ பாடி டிவ் (உயரம்: 1எம்; காட்சி: இன்லைன்-பிளாக்; செங்குத்து-சீரமைப்பு: நடுத்தர) இடைவெளி (டிஸ்ப்ளே: இன்லைன்-பிளாக்; அகலம்: 120 பிக்சல்கள்) .ஆரஞ்சு (பின்னணி: ஆரஞ்சு) .ஆப்பிள் (பின்னணி: #33CC66) .வாழைப்பழம் (பின்னணி: மஞ்சள்) .தக்காளி (பின்னணி: சிவப்பு) தக்காளி வெள்ளரிகள் உருளைக்கிழங்கு

இந்த எடுத்துக்காட்டு PHP இன் எந்த புதிய அம்சங்களையும் நிரூபிக்கவில்லை, ஆனால் HTML மற்றும் CSS ஐப் பயன்படுத்தி கிராபிக்ஸ் உருவாக்க எளிய வழியைக் காட்டுகிறது (இந்த விஷயத்தில் பார் விளக்கப்படங்கள்):

gd நூலகம்

முந்தைய பிரிவில் விவரிக்கப்பட்டுள்ள கிராபிக்ஸ் கருவிகள் நிலையான HTML குறியீட்டின் திறன்களை நடைமுறையில் தீர்ந்துவிடுகின்றன (இருப்பினும் நாங்கள் மிகவும் சக்திவாய்ந்த HTML5 கேன்வாஸ் கிராபிக்ஸ் உருவாக்கும் கருவியை மறைக்கவில்லை என்பது குறிப்பிடத்தக்கது). இப்போது gd நூலகத்தைப் பயன்படுத்தி உண்மையிலேயே தன்னிச்சையான கிராபிக்ஸ் உருவாக்குவதற்கான முறைகளை விவரிப்போம்.

ஜிடி நூலகத்தின் பொதுவான விளக்கம்

பொதுவாக, gd கருவித்தொகுப்பு என்பது படங்களை உருவாக்குவதற்கும் கையாளுவதற்குமான C குறியீட்டின் நூலகமாகும். இந்த நூலகம் Boutell.com இன் திறமையான மற்றும் தாராளமான ஊழியர்களால் முதலில் உருவாக்கப்பட்டது மற்றும் பொதுமக்களுக்குக் கிடைத்தது.

gd நூலகம் ஒரு கிராபிக்ஸ் அல்லது வரைதல் நிரல் அல்ல, அது ஒரு முழுமையான பயன்பாடு அல்லது வரைகலை பயனர் இடைமுகம் அல்ல. மாறாக, ஜிடி லைப்ரரியானது, விரும்பிய படக் கையாளுதலைச் செய்ய எந்த நிரலாலும் அழைக்கப்படும் செயல்பாடுகளை வழங்குகிறது. அதாவது இந்த நூலகத்தின் குறியீட்டைப் பயன்படுத்த வேண்டிய எந்த C நிரலிலும் gd நூலகத்தை இணைக்க முடியும். PHP அமைப்பின் டெவலப்பர்கள் தீர்க்கும் பிரச்சனை இதுதான்.

உண்மையில், PHP ஸ்கிரிப்டில் இருந்து gd செயல்முறைகளை அழைப்பதை எளிதாக்கும் வகையில், இடைமுக செயல்பாடுகளின் தொகுப்பு இந்த நோக்கத்திற்காக எழுதப்பட்டுள்ளது. ஆனால் gd நூலகத்தில் PHP-குறிப்பிட்ட குறியீடு எதுவும் இல்லை, மேலும் Perl, Pascal, Haskell மற்றும் REXX உள்ளிட்ட பல நிரலாக்க மொழிகள் மற்றும் நிரலாக்க சூழல்களில் இருந்து நூலகத்தை அணுகுவதற்கு இடைமுகங்கள் உருவாக்கப்பட்டுள்ளன.

மூலப் படங்களை (ஆரம்பத்தில் வெறுமையானது, வெற்றுத் தாளைப் போன்றது), பல்வேறு வழிகளில் அந்த மூலப் படங்களை வரைந்து வண்ணம் தீட்டவும், இறுதியில் படத்தை gd இன் உள் பட வடிவமைப்பிலிருந்து தரநிலைக்கு மாற்றவும் gd நூலகம் உங்களை அனுமதிக்கிறது. படத்தை வடிவமைத்து, இறுதி இலக்குக்கு அனுப்பவும் (உலாவி சாளரத்தில் வெளியீடு அல்லது கோப்பு அல்லது தரவுத்தளத்தில் சேமிக்கவும்). இந்த செயல்பாடுகள் அனைத்தும் நிரலின் கட்டுப்பாட்டின் கீழ் செய்யப்படுவதால், கைமுறையாக மேற்கொள்ளப்படாததால், உருவாக்கப்பட்ட படங்கள் விரும்பியபடி சிக்கலானதாக மாறும் மற்றும் நிரலின் செயல்பாட்டின் போது எந்த சூழ்நிலையையும் சார்ந்து இருக்கும்.

பட வடிவங்கள்

ஜிடி நூலகம் அடிப்படையில் பல்வேறு வடிவங்களைப் பயன்படுத்தி படங்களை இறக்குமதி செய்யவும் ஏற்றுமதி செய்யவும் உங்களை அனுமதிக்கிறது. மிகவும் பிரபலமான பட வடிவங்கள் GIF, JPEG மற்றும் PNG ஆகும், இருப்பினும் பயன்படுத்தப்படும் எடுத்துக்காட்டுகள் முதன்மையாக பிந்தையதைப் பயன்படுத்துகின்றன.

GIF மற்றும் PNG வடிவங்கள் சில சேர்த்தல்களுடன் பிக்சல்களுடன் தொடர்புடைய வண்ண உறுப்புகளின் கட்டத்தை விவரிக்கும் நோக்கம் கொண்டவை. முதல் சேர்த்தல், கலங்களில் உண்மையான வண்ண எண்கள் அல்லது குறியீடுகள் வண்ண எண்களின் அட்டவணையில் இருக்கலாம். (முதல் விருப்பம் அதிக வெளிப்படையான படங்களை உருவாக்க உங்களை அனுமதிக்கிறது, ஏனெனில் இது பல்வேறு வண்ணங்களை வழங்க உங்களை அனுமதிக்கிறது, மேலும் கடைசி விருப்பம் மிகவும் சிறிய படங்களை உருவாக்க உதவுகிறது.)

இரண்டாவது சேர்த்தல் பின்வருமாறு. நிச்சயமாக, GIF மற்றும் PNG வடிவங்களின் கருத்தியல் பிரதிநிதித்துவம் மிகவும் எளிமையானது, ஆனால் நடைமுறையில், இந்த வடிவங்களில் படங்களைப் படிப்பது, எழுதுவது மற்றும் அனுப்புவது எப்போதும் சுருக்கப்பட்ட வடிவத்தில் செய்யப்படுகிறது. கலங்களின் கட்டமாக குறிப்பிடப்படும் தரவைச் சேமிப்பதற்கு அதிக அளவு நினைவகம் தேவைப்படுவதால் சுருக்கம் அவசியம். ஒரு எளிய 500x400 பிக்சல் படம் 200,000 பிக்சல்களைக் கொண்டுள்ளது, மேலும் ஒவ்வொரு பிக்சலுக்கும் மூன்று பைட்டுகள் தேவைப்பட்டால், தேவையான நினைவகத்தின் அளவு ஏற்கனவே அரை மெகாபைட்டுக்கு மேல் உள்ளது.

சுருக்கத்தின் தலைப்பு ஒரு பரந்த மற்றும் சிக்கலான ஒன்றாகும், ஆனால் பெரும்பாலான சுருக்க வழிமுறைகள் அதன் அளவைக் குறைப்பதற்காக படத்தின் பணிநீக்கத்தைக் குறைப்பதை அடிப்படையாகக் கொண்டவை. (உதாரணமாக, ஒவ்வொரு பிக்சலுக்கான பச்சை மதிப்பை தனித்தனியாகக் குறிப்பிடுவதை விட, படத்தில் உள்ள ஒவ்வொரு பிக்சலும் பச்சை நிறத்தில் இருப்பதைக் குறிப்பிடுவதற்கு குறைவான நினைவக இடம் தேவைப்படும்.) துரதிர்ஷ்டவசமாக, சுருக்க வழிமுறைகள் இந்த பண்புகளைப் பயன்படுத்துவதை நம்பவில்லை, ஏனெனில் அவை அத்தகைய பண்புகளை தீர்மானிக்க வேண்டும். சிக்கலான சிக்கல்கள், இந்த சிக்கல்களைத் தீர்ப்பதற்கான முறைகள், GIF வடிவத்தில் படங்களை உருவாக்கப் பயன்படுத்தப்படும் சுருக்க அல்காரிதத்தில் செயல்படுத்தப்பட்டு, காப்புரிமையும் கூட.

நூலகத்தை நிறுவுதல்

வெளிப்படையாக, gd நூலகத்தை நிறுவுதல் மற்றும் PHP அமைப்புடன் இணைந்து அதை வெற்றிகரமாகச் செயல்பட வைப்பது மிகவும் சிக்கலானது. இது PHP அல்லது gd மென்பொருளில் உள்ள குறைபாடுகளால் அல்ல, ஆனால் முழுமையும் உள்ளமைவு சிக்கல்கள் காரணமாகும்; குறிப்பாக, gd நூலகங்கள் எங்கு இருக்க வேண்டும் மற்றும் உண்மையில் இருக்க வேண்டும் என்பதை நீங்கள் புரிந்து கொள்ள வேண்டும், மேலும் அனைத்து இயங்கக்கூடியவற்றின் தொகுத்தல் மற்றும் இணைக்கும் படிகள் சரியாக முடிக்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்தவும். எனவே, ஜிடி லைப்ரரி ஏற்கனவே நிறுவப்பட்டிருப்பதையும், ஜிடி ஆதரவு PHP அமைப்பில் ஏற்கனவே இயக்கப்பட்டிருப்பதையும் பயனர் கண்டறிந்துக்கொள்வதே சிறந்த சூழ்நிலையாகும்.

எனவே, gd நூலகத்தின் நிறுவல் பூஜ்ஜிய படியில் இருந்து தொடங்க வேண்டும் - இந்த நூலகம் ஏற்கனவே நிறுவப்பட்டுள்ளதா என்பதைச் சரிபார்த்து. முதலில், உங்கள் ஸ்கிரிப்ட் கோப்பில் பின்வரும் குறியீட்டை உள்ளிட்டு, உங்கள் ஸ்கிரிப்ட்கள் உங்கள் வலை ஹோஸ்டிங் நிறுவனத்தால் இயக்கப்பட்டாலும் அல்லது முழுவதுமாக உங்கள் சொந்த நிறுவலால் இயக்கப்பட்டாலும் உங்கள் உலாவியில் இயங்கும் முடிவுகளைப் பார்க்கவும்:

திரையில் இந்தப் பக்கத்தைக் காட்டிய பிறகு, உலாவி சாளரத்தில் "gd" என்ற உரைச் சரத்தைத் தேடவும். உங்கள் PHP நிறுவல் gd நூலகத்திற்கான ஆதரவை எந்த அளவிற்கு அனுமதிக்கிறது என்பதை விவரிக்கும் ஒரு துணைப்பிரிவை இது வெளிப்படுத்த வேண்டும். நீங்கள் சில வகையான படங்களை (உதாரணமாக, PNG) மட்டுமே தயார் செய்ய விரும்பினால், phpinfo() செயல்பாட்டின் முடிவுகள் அந்த வகை படத்திற்கான ஆதரவு இயக்கப்பட்டிருப்பதைக் குறிக்கிறது என்றால், நீங்கள் இப்போதே தொடங்கலாம். gd பதிப்புத் தகவலில் "தொகுக்கப்பட்ட" என்ற வார்த்தை இருந்தால், PHP உடன் வரும் gd நூலகம் பயன்படுத்தப்படும்.

gd நூலகத்தைக் குறிப்பிடும் முயற்சி தோல்வியில் முடிந்தால், நீங்கள் PHP ஐ நிறுவுகிறீர்கள் என்றால், நீங்கள் gd நூலக உள்ளமைவை நிறுவி உள்ளமைக்கலாம். (மறுபுறம், உங்கள் PHP நிறுவல் உங்கள் ஹோஸ்டிங் நிறுவனத்தால் கையாளப்பட்டால், gd நூலகத்திற்கான ஆதரவை வழங்குமாறு அந்த நிறுவனத்தைக் கேட்பது அல்லது மற்றொரு வலை ஹோஸ்டிங் நிறுவனத்தைப் பயன்படுத்துவதே உங்கள் ஒரே விருப்பமாகும்.)

PHP உடன் வரும் gd லைப்ரரியைப் பயன்படுத்துவது gd ஐ நிறுவுவதில் தொடர்புடைய பல தொந்தரவுகளை நீக்குகிறது, ஆனால் அனைத்தையும் அல்ல. உண்மை என்னவென்றால், விநியோக தொகுப்பில் சேர்க்கப்பட்டுள்ள பதிப்பைப் பயன்படுத்துவது ஜிடி நூலகத்தைப் பெற உங்களை அனுமதிக்கிறது, ஆனால் ஜிடி வேலை செய்யத் தேவையான அனைத்து நூலகங்களும் அவசியமில்லை. gd நூலகமே வேறு பல நூலகங்களைச் சார்ந்துள்ளது: libpng (PNG படங்களைக் கையாளுவதற்கு), zlib (சுருக்கத்திற்காக), மற்றும் jpeg-6b அல்லது அதற்குப் பிறகு (தேவைப்பட்டால் JPEG படங்களைக் கையாளுவதற்கு). இந்த நூலகங்கள் ஏற்கனவே பல லினக்ஸ் நிறுவல்களில் உள்ளன, இந்த நிலையில் நிறுவல் கோப்பகத்தைக் குறிப்பிடாமல் விருப்பத்தேர்வுகளில் (--with-zlib போன்றவை) தேவையானவற்றைச் சேர்த்தால் போதுமானதாக இருக்கும். PHP உள்ளமைவை நீங்களே செய்தால், ஜிடியின் சேர்க்கப்பட்ட பதிப்பு இயங்கக்கூடியதில் சேர்க்கப்பட்டுள்ளதா என்பதை உறுதிப்படுத்த --with-gd விருப்பத்தை நீங்கள் சேர்க்கலாம். நீங்கள் வேறு பதிப்பை சுட்டிக்காட்ட விரும்பினால், அதற்கு பதிலாக --with-gd=path விருப்பத்தைப் பயன்படுத்தவும்.

தேவையான ஒன்று அல்லது அதற்கு மேற்பட்ட நூலகங்கள் காணவில்லை எனில், அந்த நூலகங்கள் தனித்தனியாக கட்டப்பட வேண்டும் என்று அர்த்தம். தற்போதைய பதிப்புகளை எங்கு தேடுவது என்பது பற்றிய தகவலுக்கு, www.libgd.org இல் உள்ள ஆவணங்களை மதிப்பாய்வு செய்வதன் மூலம் தொடங்கலாம்.

ஜிடி நூலகத்துடன் பணிபுரிவதற்கான அடிப்படைக் கொள்கைகள்

gd கருவித்தொகுப்பைப் பயன்படுத்தி ஒரு படம் உருவாக்கப்படும்போது அல்லது கையாளப்படும்போது, ​​எந்த வழக்கமான பட வகையுடனும் தொடர்பு இல்லாத ஒரு சிறப்பு gd வடிவத்தில் படம் குறிப்பிடப்படுகிறது. இந்த gd வடிவத்தில் படங்களை ஏற்றுமதி செய்வது கோட்பாட்டளவில் சாத்தியம், ஆனால் அத்தகைய செயல்பாடு அரிதாகவே பயன்படுத்தப்படுகிறது, ஏனெனில் இதன் விளைவாக வரும் படம் சுருக்கப்படவில்லை மற்றும் உலாவி அல்லது எளிய கிராபிக்ஸ் நிரலில் காட்ட முடியாது.

gd கருவித்தொகுப்பைப் பயன்படுத்தி செயலாக்கப்பட்ட ஒரு படம் அனைத்து பிக்சல்களின் அகலம், உயரம் மற்றும் நிறம் பற்றிய தகவலால் வகைப்படுத்தப்படுகிறது, அவற்றின் எண்ணிக்கை அகலம் மற்றும் உயரத்தின் தயாரிப்புக்கு சமம். பொதுவாக, ஒரு நிரல் ஒரு புதிய வெற்றுப் படத்தை உருவாக்குவதன் மூலம் (வரைந்து வரைய வேண்டும்) அல்லது ஒரு கோப்பிலிருந்து ஒரு படத்தை இறக்குமதி செய்வதன் மூலம் gd நூலகத்துடன் அதன் தொடர்பைத் தொடங்குகிறது. பின்வரும் படிகள் வழக்கமாக செய்யப்படுகின்றன: முதலில், படத்தில் வண்ணங்களின் விநியோகம், இரண்டாவது, வேறு சில செயல்பாடுகளைப் பயன்படுத்தி படத்தை வரைதல் மற்றும் ஓவியம் அல்லது கையாளுதல், மூன்றாவது, படத்தை பொதுவாக ஏற்றுக்கொள்ளப்பட்ட வடிவமாக மாற்றுதல் (எடுத்துக்காட்டாக, PNG அல்லது JPEG ) மற்றும் அதை அதன் இலக்குக்கு மாற்றவும்.

வண்ணங்களின் பிரதிநிதித்துவம்

gd படங்களில் வண்ணங்களைப் பிரதிநிதித்துவப்படுத்த இரண்டு வழிகள் உள்ளன: ஒரு தட்டு அடிப்படையிலான பிரதிநிதித்துவம், இது 256 வண்ணங்களுக்கு மட்டுப்படுத்தப்பட்டுள்ளது, மற்றும் உண்மையான வண்ணப் பிரதிநிதித்துவம், வெவ்வேறு RBG வண்ண எண்களின் தன்னிச்சையான எண்ணைக் குறிப்பிட உங்களை அனுமதிக்கிறது. gd 1.x இல், தட்டு அடிப்படையிலான வண்ணங்களைப் பயன்படுத்துவதே ஒரே விருப்பம், ஆனால் gd 2.x மற்றும் PHP உடன் சேர்க்கப்பட்டுள்ள இந்த நூலகத்தின் பதிப்பில், தட்டு அடிப்படையிலான படங்கள் மற்றும் படங்களை யதார்த்தமான வண்ணங்களில் உருவாக்க முடியும். நினைவில் கொள்ள வேண்டிய ஒன்று, கொடுக்கப்பட்ட எந்த gd படமும் தட்டு அடிப்படையிலானதாக இருக்க வேண்டும் அல்லது உண்மையான வாழ்க்கை வண்ணங்களைக் கொண்டிருக்க வேண்டும் (RGB); இதன் பொருள் ஒரு தட்டு அடிப்படையில் யதார்த்தமான வண்ணங்களை படங்களில் அறிமுகப்படுத்த விருப்பம் இல்லை.

தட்டு அடிப்படையில் அசல் வெற்று படத்தைப் பெற, நீங்கள் ImageCreate() செயல்பாட்டை அழைக்க வேண்டும், மேலும் படத்தை உண்மையான வண்ணங்களில் பெற, ImageCreateTrueColor() செயல்பாட்டைப் பயன்படுத்தவும்.

தட்டு அடிப்படையிலான படங்கள்

0 முதல் 255 வரையிலான மூன்று எண்களைப் பயன்படுத்தி, சிவப்பு-பச்சை-நீலம் (RGB) வடிவத்தில் வண்ணங்கள் குறிப்பிடப்படுகின்றன. எடுத்துக்காட்டாக, எண்களால் குறிப்பிடப்பட்ட நிறம் (255, 0, 0) பிரகாசமான சிவப்பு, நிறம் ( 0, 255, 0) - பச்சை, நிறம் (0, 0, 255) - நீலம், நிறம் (0, 0, 0) - கருப்பு, நிறம் (255, 255, 255) - வெள்ளை மற்றும் நிறம் (127, 127, 127) - சாம்பல். மேலும் மேலும் புதிய வண்ணங்களை உருவாக்குவதன் மூலம், நீங்கள் மூன்று வண்ண கூறுகளின் மதிப்புகளை தன்னிச்சையாக தேர்வு செய்யலாம்.

ஒரு படத்தில் எந்த வரைபடமும் ஒரு குறிப்பிட்ட வண்ணத்துடன் செய்யப்பட வேண்டும், மேலும் அவை பயன்படுத்தப்படுவதற்கு முன்பு வண்ணங்கள் படத்தில் விநியோகிக்கப்பட வேண்டும். கூடுதலாக, படத்தில் விநியோகிக்கப்படும் முதல் வண்ணம் தானாகவே பின்னணி நிறமாக மாறும். எனவே, எந்தவொரு சந்தர்ப்பத்திலும் நீங்கள் வண்ணங்களைக் குறிப்பிடாமல் செய்ய முடியும் என்று கருதக்கூடாது, மேலும் பொதுவாக வண்ணங்களை விநியோகிக்கும் செயல்பாடு புதிய வெற்று படத்தை உருவாக்கிய பிறகு முதல் செயல்பாடாகும்.

தட்டு அடிப்படையிலான படங்களில் உள்ள நிறங்கள் imagecolorallocate() செயல்பாட்டைப் பயன்படுத்தி உருவாக்கப்படுகின்றன, இது ஒரு படத்தை (முன்பு உருவாக்கப்பட்டது) மற்றும் சிவப்பு, பச்சை மற்றும் நீலத்தின் விகிதத்தைக் குறிப்பிடும் மூன்று முழு எண்களை அளவுருக்களாக எடுத்துக்கொள்கிறது. திரும்ப மதிப்பு என்பது படத்தின் உள் தட்டுகளில் புதிய நிறத்தின் குறியீட்டைக் குறிப்பிடும் ஒரு முழு எண் ஆகும். இந்த ரிட்டர்ன் மதிப்பு ஒரு மாறிக்கு ஒதுக்கப்பட வேண்டும், ஏனெனில் இந்த நிறத்தைப் பயன்படுத்தி அனைத்து எதிர்கால செயல்பாடுகளையும் செய்ய குறிப்பிட்ட குறியீட்டு மதிப்பு தேவைப்படுகிறது.

தட்டு அடிப்படையிலான படங்கள் அதிகபட்சமாக 256 வண்ணங்களைக் கொண்டிருக்கலாம். (அத்தகைய படங்கள் உண்மையில் எதை அடிப்படையாகக் கொண்டவை என்பதில் வாசகர் ஆர்வமாக இருக்கலாம் அல்லது ஆர்வம் காட்டாமல் இருக்கலாம், ஆனால் தட்டு அடிப்படையிலான படத்தில் உள்ள ஒவ்வொரு பிக்சலும் குறியீட்டைச் சேமிக்கும் ஒற்றை பைட் ஆகும். 256 வண்ணங்களின் தட்டில் உள்ள ஒரு உறுப்பு.)

ஒரு படத்தில் வண்ணங்களில் ஒன்றை விநியோகிக்கும் போது திரும்பிய குறியீட்டு அந்த படத்திற்கு மட்டுமே அர்த்தமுள்ளதாக இருக்கும் என்பதை நினைவில் கொள்ளவும். எடுத்துக்காட்டாக, PHP ஸ்கிரிப்ட் ஒரு படத்தில் விநியோகிக்கப்பட்ட நிறத்திற்கு $கருப்பு என்று ஒதுக்கினால், அந்த மாறியை மற்றொரு படத்தை செயலாக்க அழைக்கப்படும் வரைதல் கட்டளைக்கு வண்ண உள்ளீடாகப் பயன்படுத்துவதில் அர்த்தமில்லை.

யதார்த்தமான வண்ணங்கள் கொண்ட படங்கள்

gd 2.0 மற்றும் அதற்குப் பிறகு ஒவ்வொரு பிக்சலும் தன்னிச்சையான RGB வண்ண எண்ணைச் சேமிக்கும் தட்டு-அடிப்படையிலான படங்களை உருவாக்கும் திறனையும் வழங்குகிறது. இந்த உண்மை-வண்ண வடிவம் என்று அழைக்கப்படுவதில், சாத்தியமான வண்ணங்களின் எண்ணிக்கை மிகப் பெரியது. இந்த அம்சம் கலை வெளிப்பாட்டின் நோக்கத்தை வரம்பற்ற முறையில் விரிவுபடுத்துவது மட்டுமல்லாமல், gd கருவித்தொகுப்பைப் பயன்படுத்தி நினைவகத்தில் ஏற்றப்பட்ட உண்மையான வண்ணங்களுடன் PNG மற்றும் JPEG படங்களை உண்மையாக மீண்டும் உருவாக்கவும் இது உங்களை அனுமதிக்கிறது.

ஆரம்ப படத்தை உருவாக்க வேறு செயல்பாடு பயன்படுத்தப்படுவதைத் தவிர, வெவ்வேறு வண்ணங்களைத் தேர்ந்தெடுப்பதில் எந்த கட்டுப்பாடுகளும் இல்லை, உண்மையான வண்ணப் படங்களுடன் பணிபுரியும் கொள்கைகள் தட்டு அடிப்படையிலான படங்களைப் போலவே இருக்கும்.

குறிப்பாக, புதிய வண்ணங்களை உருவாக்க நீங்கள் ImageColorAllocate() ஐ இன்னும் அழைக்கலாம் மற்றும் கட்டளைகளை வரைவதில் பின்னர் பயன்படுத்துவதற்கு திரும்பும் மதிப்பை ஒரு மாறிக்கு ஒதுக்கலாம். ஒரே வித்தியாசம் என்னவென்றால், திரும்பும் மதிப்பு RGB வண்ண எண்ணாகும், தட்டுகளில் உள்ள உறுப்பின் குறியீட்டு அல்ல. கூடுதலாக, உண்மையான வண்ணங்களைக் கொண்ட படங்களில், ImageColorAllocate() செயல்பாட்டின் பக்க விளைவுகளாக உருவாக்கப்பட்ட பின்னணி வண்ணம் பற்றிய கருத்து எதுவும் இல்லை; துவக்கத்தின் விளைவாக, அனைத்து பிக்சல்களுக்கும் கருப்பு (0, 0, 0) என்ற பதவி ஒதுக்கப்படுகிறது.

வெளிப்படைத்தன்மை

gd 2.x இன் பதிப்புகள் வெளிப்படைத்தன்மையின் கருத்தை ஆதரிக்கின்றன. நிறம் எவ்வளவு வெளிப்படையானது என்பதைக் குறிக்க இது ஒரு ஆல்பா சேனலை (சிவப்பு, பச்சை மற்றும் நீல மதிப்புகளுக்கு கூடுதலாக) பயன்படுத்துகிறது. எடுத்துக்காட்டாக, ஒரு வடிவத்தை மற்றொன்றின் மீது மிகைப்படுத்த இது அனுமதிக்கிறது, இதனால் முதல் வடிவம் முழுமையாக இரண்டாவதாக ஒன்றுடன் ஒன்று காணப்படுவதற்குப் பதிலாக ஓரளவு தெரியும்.

PHP இல், படங்களுடன் பணிபுரியும் பல செயல்பாடுகள் பெயரில் "ஆல்பா" என்ற வார்த்தையைக் கொண்ட ஒரு அனலாக் உள்ளது, இது இந்த செயல்பாடுகளில் நிறம் நான்கு மதிப்புகளால் (R, G, B, A) குறிக்கப்படுகிறது என்பதைக் குறிக்கிறது. எடுத்துக்காட்டாக, imageColorAllocate() செயல்பாடு மூன்று அளவுருக்களை எடுக்கும், மேலும் ImageColorAllocateAlpha() செயல்பாட்டை அழைக்கும் போது, ​​0 மற்றும் 127 க்கு இடையில் உள்ள மதிப்புடன் நான்காவது அளவுருவை நீங்கள் குறிப்பிட வேண்டும். பூஜ்ஜியத்தின் மதிப்பு நிறம் முற்றிலும் ஒளிபுகா மற்றும் ஒரு மதிப்பைக் குறிக்கிறது. இன் 127 நிறம் முற்றிலும் ஒளிபுகா என்பதை குறிக்கிறது

ஆய மற்றும் வரைதல் கட்டளைகள்

gd கருவித்தொகுப்பைப் பயன்படுத்தி ஒரு படத்தை உருவாக்கிய பிறகு, ஒரு ஒருங்கிணைப்பு அமைப்பு மறைமுகமாக உருவாக்கப்படுகிறது, அது உங்களுக்குள் வரைதல் கட்டளைகளைக் குறிப்பிட அனுமதிக்கிறது. இந்த அமைப்பில் வரையறுக்கப்பட்ட ஒருங்கிணைப்பு மதிப்புகள் படத்தின் அகலம் மற்றும் உயரத்தின் குறிப்பிட்ட அளவுருக்களால் தீர்மானிக்கப்படுகின்றன.

இந்த அமைப்பில் உள்ள ஆயத்தொலைவுகளின் தோற்றம், ஆயத்தொலைவுகளுக்கு (0, 0) தொடர்புடையது, படத்தின் மேல் இடது மூலையில் அமைந்துள்ளது. X மதிப்புகளுக்கான நேர்மறை திசை இடமிருந்து வலமாகவும், Y மதிப்புகளுக்கு மேலிருந்து கீழாகவும் இருக்கும். (கணினி கிராபிக்ஸ் ஒருங்கிணைப்பு அமைப்புகளில், தோற்றத்தின் இந்த இருப்பிடம் பொதுவானது, ஆனால் பகுப்பாய்வு வடிவவியலைப் படித்தவர்கள் வரைபடத்தின் கீழ் இடது மூலையில் தோற்றம் இருப்பது போல் தெரிகிறது.)

வரைதல் கட்டளைகளின் எண்ணிக்கை மிகப் பெரியது. இந்தக் கட்டளைகளில் வரிப் பிரிவுகள், செவ்வகங்கள் மற்றும் வளைவுகளை வரைவதற்கான கட்டளைகளும், குறிப்பிட்ட பிக்சல் மதிப்புகளை அமைப்பதற்கான கட்டளைகளும் அடங்கும், ஆனால் அவை மட்டும் அல்ல. ஆனால் இந்த வரைதல் மற்றும் திட்டமிடல் கட்டளைகளின் இறுதி முடிவு பிக்சல் மதிப்புகளை அமைப்பதே என்பதை நினைவில் கொள்ளுங்கள். பிக்சல் மதிப்புகளை மாற்றும் கட்டளைகளை இயக்கிய பிறகு, நினைவகத்தில் எந்த தடயமும் இல்லை (மாற்றப்பட்ட மதிப்புகளைத் தவிர), எனவே வரைதல் மற்றும் திட்டமிடல் கட்டளைகளை மீறவோ அல்லது வெவ்வேறு கட்டளைகளின் முடிவுகளை தனித்தனியாக வழங்கவோ வழி இல்லை.

குறிப்பிடப்பட்ட படத்திற்கு அப்பால் நீட்டிக்கப்படும் வரைதல் கட்டளைகளைத் தடுக்க எதுவும் இல்லை, ஆனால் அத்தகைய வரைதல் புலப்படும் விளைவைக் கொண்டிருக்கவில்லை. எடுத்துக்காட்டாக, அனைத்து ஆய மதிப்புகளும் எதிர்மறையாக இருந்தால், ஒரு செவ்வகம் படத்தில் காணப்படாது.

வடிவ மாற்றம்

அனைத்து வரைதல் மற்றும் படத்தை கையாளுதல் செயல்பாடுகள் உள் gd வடிவத்தில் குறிப்பிடப்படும் படத்தில் செய்யப்படுகின்றன. இந்த செயல்பாடுகள் முடிந்த பிறகு, ஸ்கிரிப்ட் இந்த படத்தை தேவையான கிராஃபிக் வடிவத்திற்கு மாற்றுவதற்கு மாற்ற மற்றும் வெளியீட்டு கட்டளைகளில் ஒன்றை (imagepng, imagetjpeg, முதலியன) அழைக்கலாம் மற்றும் பயனர் உலாவி சாளரத்திற்கு (அல்லது ஒரு கோப்பிற்கு) வெளியிடலாம்.

வளங்களை விடுவித்தல்

பூர்த்தி செய்யப்பட்ட gd படத்தை மாற்றுவதன் முடிவு பயனருக்கு மாற்றப்பட்டதும், உள் பதிப்பின் வேலை முடிந்தது என்று நாம் கருதலாம். இதன் பொருள் இந்த பதிப்பு அழிக்கப்பட வேண்டும். இதைச் செய்வதற்கான சரியான வழி, படத்தை ஒரு அளவுருவாகக் கொண்டு imagedestroy() ஐ அழைப்பதாகும்.

gd நூலக செயல்பாடுகள்

PHP மொழிபெயர்ப்பாளரின் gd இடைமுகத்தில் வழங்கப்பட்ட அனைத்து செயல்பாடுகளையும் இந்த கட்டுரையில் நாங்கள் தனித்தனியாக பட்டியலிடப் போவதில்லை. இந்தத் தகவலைப் பற்றி நன்கு தெரிந்துகொள்ள, php.net கையேட்டின் "பட செயலாக்கம் மற்றும் உருவாக்கம்" பகுதியைப் பயன்படுத்த பரிந்துரைக்கிறோம். பெரும்பாலான gd செயல்பாடுகள் கீழே உள்ள அட்டவணையில் காட்டப்பட்டுள்ள வகைகளில் ஒன்றில் அடங்கும். இந்த அட்டவணையில் பட்டியலிடப்பட்டுள்ள செயல்பாட்டுப் பெயர்கள் ஒவ்வொரு வார்த்தையின் முதல் எழுத்தையும் எளிதாகப் படிக்க பெரியதாக்கப்படுகின்றன என்பதை நினைவில் கொள்ளவும், ஆனால் PHP செயல்பாட்டுப் பெயர்கள் கேஸ் சென்சிடிவ் அல்ல என்பதால் குறியீடு எடுத்துக்காட்டுகளில் இந்த நிபந்தனை எப்போதும் கவனிக்கப்படுவதில்லை:

ஜிடி செயல்பாடுகளின் வகைப்பாடு உதாரணக் குறிப்பைத் தட்டச்சு செய்க
படத்தை உருவாக்கும் செயல்பாடுகள் ImageCreate(), ImageCreateTruecolor(), ImageCreateFromGd(), ImageCreateFromJpeg() புதிய gd படத்தைத் திருப்பி அனுப்பவும். ImageCreate() செயல்பாடு படத்தின் அகலம் மற்றும் உயரத்தை அளவுருக்களாக எடுத்துக்கொள்கிறது, மேலும் பிற செயல்பாடுகளின் அளவுருக்கள் கோப்பு பாதை, URL அல்லது முன்பு உருவாக்கப்பட்ட படத்தைக் கொண்ட சரம் ஆகியவை ஏற்றப்பட்டு gd வடிவத்திற்கு மாற்றப்படும்.
வண்ண விநியோக செயல்பாடுகளைச் செய்யும் செயல்பாடுகள் ImageColorAllocate(), ImageColorAllocateAlpha(), ImageColorDeallocate() ImageColorAllocate() செயல்பாடு ஒரு பட கைப்பிடி மற்றும் தேவையான சிவப்பு, பச்சை மற்றும் நீல மதிப்புகளை அளவுருக்களாக எடுத்துக்கொள்கிறது, பின்னர் வரைதல் மற்றும் திட்டமிடல் செயல்பாடுகளில் பயன்படுத்துவதற்கு வண்ண எண்ணை வழங்குகிறது. ImageColorAllocateAlpha செயல்பாடு கூடுதல் அளவுருவை ஏற்றுக்கொள்கிறது - வெளிப்படைத்தன்மை குணகம் (0-127)
வண்ணப் பொருத்த செயல்பாடுகளைச் செய்யும் செயல்பாடுகள் ImageColorClosest(), ImageColorClosestAlpha(), ImageColorExact(), ImageColorExactAlpha() தட்டுப்பட்ட படத்தில் பொருந்தக்கூடிய வண்ணத்தின் குறியீட்டை வழங்கவும். அவற்றின் பெயரில் "நெருக்கமான" என்ற வார்த்தையைக் கொண்ட செயல்பாடுகள் சிறந்த பொருந்தக்கூடிய நிறத்தை வழங்கும் (போட்டியின் துல்லியம் RGB மதிப்பு இடத்தில் உள்ள புள்ளிகளுக்கு இடையிலான தூரமாக அளவிடப்படுகிறது); "சரியான" என்ற பதவியுடன் கூடிய செயல்பாடுகள், தேடப்பட்ட ஒன்றிற்கு ஒத்ததாக இருந்தால் மட்டுமே வண்ண எண்ணை வழங்கும், இல்லையெனில் அவை மதிப்பு -1 ஐத் தருகின்றன, "ஆல்பா" என்ற பெயருடன் கூடிய செயல்பாடுகள் வண்ணங்களில் செயல்படுகின்றன, அவை நான்கு மதிப்புகளைப் பயன்படுத்தி தீர்மானிக்கப்படுகின்றன (உடன் வெளிப்படையான நிறங்கள்)
வரி வரைதல் செயல்பாடுகள் ImageLine(), ImageDashedLine(), ImageRectangle(), ImagePolygon(), ImageEllipse(), ImageArc() குறிப்பிட்ட வடிவத்தின் நேரான பிரிவுகள் அல்லது வளைவுகளை வரைய அவை பயன்படுத்தப்படுகின்றன. பொதுவாக, இந்த செயல்பாடுகள் ஒவ்வொன்றின் முதல் அளவுரு படம், கடைசி அளவுரு நிறம் மற்றும் இடைநிலை அளவுருக்கள் X மற்றும் Y ஆயத்தொகுப்புகள் ஆகும்.
வரி வரைதல் பேனா அமைப்புகள் ImageSetStyle(), ImageSetThickness() அடுத்தடுத்த வரி வரைதல் கட்டளைகளால் உருவாக்கப்பட்ட வரிகளின் பண்புகளை பாதிக்கும் அமைப்புகளை மாற்றவும் (இந்த செயல்பாடுகளில் சில gd 2.0.1 அல்லது அதற்குப் பிந்தைய பதிப்புகளுக்கு மட்டுமே பொருந்தும்)
வரைதல் மற்றும் நிரப்புதல் செயல்பாடுகள் ImageFilledRectangle(), ImageFilledEllipse(), ImageFilledPolygon(), ImageFilledArc(), ImageFill() ஒரு விதியாக, அவை கோடுகளை வரைவதற்கான தொடர்புடைய செயல்பாடுகளைப் போலவே இருக்கின்றன, ஆனால் அவை பகுதிகளின் வரையறைகளை வரைவதற்கு மட்டுமல்லாமல், உருவாக்கப்பட்ட பகுதிகளை வண்ணத்துடன் நிரப்புவதற்கும் வழங்குகின்றன. ImageFill() என்ற சிறப்பு செயல்பாடு குறிப்பிட்ட நிரப்பு நிறத்தைப் பயன்படுத்தி நிரப்பு செயல்பாட்டைச் செய்கிறது. குறிப்பிட்ட XY ஆயத்தொலைவுகளிலிருந்து தொடங்கி அனைத்து திசைகளிலும் நிரப்புதல் செய்யப்படுகிறது (இந்த அம்சங்களில் சில gd 2.0.1 அல்லது அதற்குப் பிறகு தேவை)
உரையுடன் வேலை செய்வதற்கான செயல்பாடுகள் ImageString(), ImageLoadFont() ImageString செயல்பாடு ஒரு பட கைப்பிடி, எழுத்துரு எண், X மற்றும் Y ஆயத்தொலைவுகள், ஒரு உரை சரம் மற்றும் ஒரு வண்ணத்தை அளவுருக்களாக எடுத்துக்கொள்கிறது. எழுத்துரு எண் 1 மற்றும் 5 க்கு இடையில் இருந்தால், இந்த வண்ணத்தில் வரியைக் காட்ட ஐந்து உள்ளமைக்கப்பட்ட எழுத்துருக்களில் ஒன்று பயன்படுத்தப்படும். மறுபுறம், 5 ஐ விட அதிகமான எழுத்துரு எண் ImageLoadFont() செயல்பாட்டைப் பயன்படுத்தி ஒரு சிறப்பு எழுத்துருவை ஏற்றுவதன் முடிவைக் குறிக்கிறது.
ஏற்றுமதி செயல்பாடுகள் ImagePng(), ImageJpeg() உள் gd படத்தை பொருத்தமான வடிவமைப்பின் படமாக மாற்றவும், பின்னர் இந்த படத்தை வெளியீட்டு ஸ்ட்ரீமுக்கு அனுப்பவும். ஒரே ஒரு அளவுரு குறிப்பிடப்பட்டால் (பட கைப்பிடி), பின்னர் படம் பயனருக்கு எதிரொலிக்கும், மேலும் கூடுதல் அளவுரு பயன்படுத்தப்பட்டால், இது ஒரு கோப்பு பாதை, வெளியீட்டு ஸ்ட்ரீமின் இலக்கு கோப்பாக மாறும்.
படத்தை அழிக்கும் செயல்பாடு படத்தை அழித்தல்() ஒரு படக் கைப்பிடியை அளவுருவாக எடுத்து, படத்துடன் தொடர்புடைய அனைத்து ஆதாரங்களையும் வெளியிடுகிறது
HTTP பட ஆதரவு

பயனரின் உலாவியில் ஒரு படத்தை சரியாக வழங்குவதற்கு, படம் எங்கிருந்து வர வேண்டும் மற்றும் அதன் வடிவம் என்ன என்பதைக் குறிப்பிடுவது அவசியம். எனவே, துரதிர்ஷ்டவசமாக, வெறுமனே செயல்படுத்த முடியாது, எடுத்துக்காட்டாக, உருவாக்கப்பட்ட HTML கோப்பில் imageToPng() செயல்பாட்டிற்கான அழைப்பு மற்றும் அதன் மூலம் படத்தைக் காண்பிப்பதில் உள்ள சிக்கலை தீர்க்கவும். முக்கியமாக, PHP ஸ்கிரிப்ட்டில் உருவாக்கப்பட்ட HTML குறியீட்டுடன் பட வெளியீட்டுக் குறியீட்டை நீங்கள் இணைக்க வேண்டும், இதைச் செய்ய கீழே விவரிக்கப்பட்டுள்ள மூன்று விருப்பங்களில் ஒன்றைப் பயன்படுத்தலாம்.

முழு பக்க படங்களை உருவாக்குதல்

உருவாக்கப்பட்ட முழு பக்கத்தையும் ஒரு படமாக வடிவமைக்க முடியும். இந்த வழக்கில், நீங்கள் படத் தரவுக்கு முன் ஒரு HTTP தலைப்பை அனுப்ப வேண்டும், அதன் மூலம் பின்வருபவை ஒரு குறிப்பிட்ட வகையின் படம் என்று அறிவிக்க வேண்டும். எடுத்துக்காட்டாக, ஸ்கிரிப்ட்டின் முடிவில் பின்வரும் வரிகள் வழங்கப்படலாம்:

// ... ஒரு படத்தை உருவாக்கி அதை ஒதுக்கும் குறியீடு // மாறி $image தலைப்புக்கு ("உள்ளடக்க வகை: படம்/png"); // உலாவி imagepng ($image) இல் தலைப்பைக் காண்பி; // படத்தின் தரவை அனுப்பவும், PNG வடிவத்திற்கு மாற்றப்பட்டது imagedestroy($image); // ஆதாரங்களை வெளியிடுங்கள்

இந்த அணுகுமுறையின் நன்மை என்னவென்றால், POST அளவுருக்கள் உட்பட எந்த தகவலும் எதிர்கால படத்தின் கலவை பற்றிய வழிமுறைகளை தெரிவிக்க பயன்படுத்தப்படலாம். எதிர்மறையானது என்னவென்றால், இதன் விளைவாக வரும் பக்கத்தில் வழக்கமான HTML குறியீட்டைக் கொண்டிருக்க முடியாது. உண்மையில், ஸ்கிரிப்ட்களில் தலைப்பு மற்றும் படத்திற்கு முன் எந்த உரை வெளியீட்டையும் அனுப்பாமல் கவனமாக இருக்க வேண்டும், ஏனெனில் இது உள்ளடக்கத்தை முன்கூட்டியே அனுப்புவதற்கு சமம். இந்த வழக்கில், "தலைப்புகள் ஏற்கனவே அனுப்பப்பட்டவை..." பிழை செய்தி தோன்றும்.

கோப்புகளில் சேமிக்கப்பட்ட படங்களை உட்பொதித்தல்

முதலில், HTML விளக்கத்தை ஆதரிக்கிறது என்பதை நினைவில் கொள்க , பின்வரும் எடுத்துக்காட்டில் உள்ளதைப் போல, படக் கோப்பு பாதை அல்லது URL ஐக் குறிப்பிடுவதன் மூலம் ஒரு படத்தை உட்பொதிக்க உங்களை அனுமதிக்கிறது:

இந்த வடிவமைப்பு நிலையான படக் கோப்புகளுக்குப் பொருந்தும், ஆனால் புதிதாக உருவாக்கப்பட்ட படத்தை உட்பொதிப்பதை இயக்க முடியவில்லை என்பதற்கு எந்தக் காரணமும் இல்லை. எனவே, நீங்கள் ஒரு ஸ்கிரிப்டைத் தயாரிக்கலாம், அதில் ஒரு படம் முதலில் உருவாக்கப்பட்டு, பின்னர் படத் தரவு உள்ளூர் கோப்பில் எழுதப்படும், பின்னர் தொடர்புடைய விளக்கத்துடன் HTML குறியீடு உருவாக்கப்படும். , புதிதாக உருவாக்கப்பட்ட கோப்பை சுட்டிக்காட்டுகிறது.

இந்த அணுகுமுறையின் ஒரே குறைபாடுகள் என்னவென்றால், முதலில், பக்கத்தை உருவாக்கும் செயல்முறையில் கோப்பு எழுதுதல்கள் இருக்க வேண்டும், இது நேரத்தை எடுத்துக்கொள்ளும், இரண்டாவதாக, நீங்கள் கோப்புகளைப் பயன்படுத்தி முடித்தவுடன் அவற்றை என்ன செய்ய வேண்டும் என்பதை நீங்கள் தீர்மானிக்க வேண்டும்.

ஆனால் ஒரு குறிப்பிட்ட சூழ்நிலையில் இந்த அணுகுமுறை சிறந்தது. இது வரையறுக்கப்பட்ட தேர்வுகளின் தொகுப்பைக் குறிக்கும் படங்களை உருவாக்குவது மற்றும் தேக்ககப்படுத்துவது பற்றியது. இந்த வழக்கில், ஒரு குறிப்பிட்ட சூழ்நிலையை படக் கோப்பின் பெயருடன் இணைக்க ஒரு குறிப்பிட்ட வழி உள்ளது. இந்தச் சூழ்நிலைகளில் சில, ஒரு படத்தை வெளியீடாகத் தேவைப்படும்போது, ​​அதற்குரிய கோப்பு ஏற்கனவே உள்ளதா எனச் சரிபார்க்கப்படும். பதில் நேர்மறையாக இருந்தால், இந்தக் கோப்பிற்கான இணைப்பு வெறுமனே பயன்படுத்தப்பட்டு, விளக்கமாக வடிவமைக்கப்பட்டுள்ளது , மற்றும் பதில் இல்லை என்றால், ஒரு படம் உருவாக்கப்பட்டு, ஒரு கோப்பில் எழுதப்பட்டு, இந்த படத்திற்கான இணைப்பு மீண்டும் பயன்படுத்தப்படும். இறுதியில், புதிய கோப்புகளை உருவாக்குவது அவசியமில்லை.

ஸ்கிரிப்ட்களில் உருவாக்கப்பட்ட படங்களை உட்பொதித்தல்

இறுதியாக, உங்களால் ஒரு தனியான பட ஸ்கிரிப்டை வழங்க முடியவில்லை என்பதற்கு எந்த காரணமும் இல்லை, அதன் விளைவாக வரும் படத்தை மற்றொரு ஸ்கிரிப்ட் மூலம் உருவாக்கப்பட்ட டைனமிக் பக்கத்தில் விளக்கியில் குறிப்பிடவும். இந்த ஸ்கிரிப்ட்டின் URL. தேவையான தரவை சார்பு பக்கத்திற்கு எவ்வாறு மாற்றுவது என்பதைத் தேர்ந்தெடுப்பது மட்டுமே சிரமம். எடுத்துக்காட்டாக, உட்பொதிக்கப்பட்ட படத்தைக் குறிக்கும் கைப்பிடி இப்படி இருக்கும்:

இந்த வழக்கில், ballpage.php ஸ்கிரிப்ட் படத்தில் பல்வேறு நிலைகளில் அமைந்துள்ள வண்ண பந்துகளின் PNG படங்களை வழங்குகிறது.

ஆனால் இந்த அணுகுமுறையைப் பயன்படுத்துவது சிக்கல்களை ஏற்படுத்தும், ஏனெனில் இணைய சேவையகங்கள் மற்றும் உலாவிகள் சில சமயங்களில் செயலாக்கப்படும் கோப்புகளின் பின்னொட்டுகளை சரிபார்த்து, காசோலையின் முடிவுகளைப் பெறும்போது, ​​அவை வித்தியாசமாக செயல்படுகின்றன. எடுத்துக்காட்டாக, பால்பேஜ் ரெண்டரிங் ஸ்கிரிப்ட்டுக்கு .php நீட்டிப்பு வழங்கப்பட வேண்டும், இதனால் சேவையகக் குறியீடு PHP குறியீடாக விளக்கப்பட வேண்டும் என்பதை Apache சேவையகம் தீர்மானிக்க முடியும் (இருப்பினும் தேவையான செயலாக்க பயன்முறையை உள்ளமைவு கோப்புகள் மூலமாகவும் குறிப்பிடலாம்).

இருப்பினும், உலாவிகளின் தரமற்ற பதிப்புகளும் உள்ளன, அவை .php நீட்டிப்புடன் கூடிய கோப்பு ஒரு படத்தை உருவாக்கும் சாத்தியக்கூறுகளை கணக்கில் எடுத்துக் கொள்ளாது, கடந்து சென்ற தலைப்பு ஒரு படம் பின்தொடர்வதைக் குறிக்கிறது. எனவே, இந்த முறையைப் பயன்படுத்தும் போது, ​​நீங்கள் வெவ்வேறு உலாவிகளில் உள்ள ஸ்கிரிப்ட்களை சோதிக்க வேண்டும் மற்றும் பயனர்களின் நோக்கம் கொண்ட வட்டம் நீங்கள் விரும்பிய படிவத்தில் பக்கங்களைப் பெறும் என்பதை உறுதிப்படுத்த வேண்டும்.

படங்களை உருவாக்க gd நூலகத்தைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டுகள் கீழே உள்ளன.

gd நூலகத்தைப் பயன்படுத்துவதற்கான எடுத்துக்காட்டு: எளிய வடிவங்களை உருவாக்குதல்

பின்வரும் எடுத்துக்காட்டில், எளிய வடிவியல் வடிவங்களைக் கொண்ட வரைபடத்தை உருவாக்க ஜிடி நூலகத்தை எவ்வாறு பயன்படுத்துவது என்பதைக் காண்பிப்போம்:

உங்கள் சொந்த அமைப்புகளுடன் அமைப்புகளை மாற்றி, fcdemo கோப்புறையில் இந்த கோப்பை connect-to-database.php என்ற பெயரில் சேமிக்கவும்.

ரேண்டம் டேட்டாவைச் செருகுவோம்

இது உண்மையான திட்டமாக இருந்தால், பயனர்கள் அட்டவணை காலப்போக்கில் வளரும், ஆனால் விளக்கத்திற்காக, சில தரவைச் செருக வேண்டும். அட்டவணையில் சீரற்ற தரவைச் செருகும் ஒரு சிறிய ஸ்கிரிப்டை எழுதுவோம். பின்வரும் குறியீடு உங்களுக்கு புரியவில்லை என்றால் கவலைப்பட வேண்டாம் - இந்த பயிற்சிக்கு இது முக்கியமில்லை.

Create-random-data.php என்ற இந்தக் கோப்பை ஒரே கோப்புறையில் சேமிக்கவும்.

முதலில் நாம் தரவுத்தள இணைப்பு கோப்பை சேர்க்கிறோம். பயனர் பதிவுக்கான நேரம் தோராயமாகத் தேர்ந்தெடுக்கப்படும் காலக்கெடுவை நாங்கள் அமைக்கிறோம். நீங்கள் செருக வேண்டிய வரிசைகளின் எண்ணிக்கையை மாற்றலாம். இதைச் செய்ய, நீங்கள் $RecordsToInsert மாறியை சரிசெய்ய வேண்டும்.

பின்னர் உருவாக்கப்பட்ட பதிவுகளை தரவுத்தளத்தில் செருகுவதற்கான ஸ்கிரிப்டை இயக்குகிறோம். இந்த செயல்முறையைத் தொடங்க, இந்த முகவரிக்குச் செல்லவும் - http://localhost/fcdemo/generate-random-data.php.

இறுதியில் நீங்கள் செய்தியைப் பார்க்க வேண்டும்: "செருகப்பட்டது ($RecordsToInsert) பதிவுகள்"

படி 2. வலைத்தள எலும்புக்கூட்டை தயார் செய்யவும்

எங்கள் விளக்கப்படத்தைக் காட்ட மிக எளிய பக்கத்தை உருவாக்க வேண்டும். இந்த மாதிரி ஏதாவது:

FusionCharts v3.2 - LinkedCharts PHP டெமோ