Helyes átméretezése átlátszó képeket php, kódolás
Főoldal> Coding> Jobb átméretezése átlátszó képeket PHP

Kudos a programozók, akik tudja tartani mindent, ami a fejét, és ne feledkezzünk meg az átláthatóság az írásban ezt a funkciót. De elfelejtettem az egyik projekt ... Bár, őszintén szólva, vettem naguglenny például érzékenyen felújított magának és épített a projekt. De ki tudja, hogy az ügyfél szereti betölteni egy átlátszó képet ...
A legtöbb esetben otresayzennye kapott képek fekete háttér helyett egy átlátszó (mint a kép a cikk címe). Új háttér persze lehet kapni olyan szín, ez még mindig nagyon függ a kép, és a formátumát. De a probléma még mindig az úgynevezett „fekete háttér átlátszó átméretezés képek.”
Mint mindannyian tudjuk, a web tipikusan három kép formátumok: PNG, GIF, JPEG. Ennek megfelelően, átlátható lehet csak PNG és GIF. A JPEG nem támogatja az átlátszóságot. Ez a mi feladatunk, hogy megértsük, hogyan kell helyesen átméretezi PNG és GIF. Ezek a formátumok átláthatóság realizovanna másképp, és kezeli azokat ennek megfelelően kell más.
PNG átméretezés
Azt hiszem, ez nem titok, hogy realizovanna PNG alfa csatorna támogatása. Azaz, mivel négy-ágyas színes komponensek: R (piros), G (zöld), B (kék), az alfa. Alpha csatorna átláthatóság definiál egy adott pixel. De ez minden, akkor már tudja, vágott a közepébe.
Az okok a fekete háttér PNG átméretezése három:
- A programozó nem hoz létre színes képet. Ie használja ImageCreate funkció helyett imagecreatetruecolor
- Programozó elfelejti kikapcsolni az átfedő áttetsző színű (vagy ha ez a helyes - „színes párosítás üzemmódban”) segítségével imagealphablending funkciót. Az a tény, hogy imagecreatetruecolor létrehoz egy képet egy fekete háttér. Amikor a „párosítás mód szín” átlátszó pixel, nem helyettesíti a háttérben, és fogják kiszámítani szerint az új szín, új színt és a háttér színe alapján az alfa csatorna egyes színek - a végén, hogy egy teljesen átlátszó pixel háttér színe - vagyis fekete.
- A programozó nem tartalmazza megőrizve az alfa csatorna a kimeneti fájlban. Felelős ez a funkció imagesavealpha
Nos, az okok ismertek. Most a megvalósítása a jobb átméretezni PNG kép:
Lásd még:
- Proxy-cache és a képek átméretezése a nginx
Proxyzásnál, átméretezés, caching képek segítségével nginx. Szervezése közbenső képszerverre. Minimalizálása hívások távoli SERVERK átméretezéséhez a korábban cache kép nagyobb.
Van egy távoli szolgáltatás (a továbbiakban: images.service.com), hasonló funkcionalitást a termék katalógus. Ő az API, amelyen keresztül tudok.
Egy példa a sikeres CAPTCHA elismerése. Algoritmusok elválasztani a szöveget háttérben. Izolálása szöveges részének a képen. A program felismeri a képen látható szöveget.
Üdvözlünk! Ez a cikk fog beszélni több módszer captcha védelem elismerést. Ezek a technikák mutatom kísérleti.
Tervezési hiba vezetett a újraírása a projekt a semmiből. Hogyan kell helyesen tervezési alkalmazások.
Ez a téma nem tartalmaz gyakorlati információkat. Itt van az én gondolataimat a helyes megközelítés, hogy minden építészeti tervezés.
Éppen ezért, hogy egy keretet és könyvtárak. Egy pár parancs, amit tehetünk, mind ugyanaz, anélkül, hogy gondolkodás, mi van benne.
Talán igen, ez a legjobb módja ...
Bár, ha van egy hátránya. Mikor kell valamit jól csinálni, csak a dobozon kívül - meg kell, hogy menjen be a legalacsonyabb a nyelvi szintet, és nem ott. Például, az egyik alkalommal, amikor általában nem írja a sql, lekéstem a vasúti ActiveRecord. És akkor szükséges, hogy optimalizálja a sebességet lekérdezések párok, és itt kezdődött. Néhány, már majdnem egy szakértő ebben)
Köszönöm, nagyon jó hallani =)
$ Transparent_color = imagecolorsforindex ($ source_resource $ transparent_source_index.);
// színt a palettán az új képet, és állítsa be egy átlátszó
$ Transparent_destination_index = ImageColorAllocate ($ destination_resource $ transparent_color [ 'red'] $ transparent_color [ 'zöld'] $ transparent_color [ 'blue'] ...);
ImageColorTransparent ($ destination_resource $ transparent_destination_index.);
// minden esetben töltse ki a háttérben ezt a színt
imagefill ($ destination_resource 0. 0. $ transparent_destination.);
Ahol a „Csak abban az esetben, azt írja a háttérben ez a szín” színes változó $ transparent_destination nem létezik
van szükség: $ transparent_destination_index
Ha jól értem, akkor a szkript átméretezni SIFCO nem vonatkozik animáció?
Attól félek, nem. Még nem kellett foglalkozni átméretezés animált gifok.
Ahhhh! pasibo nagy!
Minden egyszerű és egyértelmű! Szeretem, ha ez így van, csakúgy, mint a bábuk))))
Ez nem működik. De csökkenti a háttér fekete!
imagealphablending ($ képet hamis.);
imagesavealpha ($ képet igaz.);
$ PngWaterMarkImg = @ ImageCreateFromPng ($ _SERVER [ "DOCUMENT_ROOT"] $ arWaterMark [ "path_to_watermark"].);
És Denver minden rendben van, de a tárhely akar. Azonnali, hogy valami függ a szerver beállításokat? Talán php verzió, vagy gd? Köszönöm.
Attól félek, hogy nem tudom az okokat, ezt a viselkedést. Annak ellenére, hogy én nem különösebben emlékszem a pontos képekkel dolgozik a php. Ezért félek akkor meg kell keresni a probléma okát (
PS: hogyan válasszuk ki - itt iratkozhat le)
És én gife, csak az első képkocka után is megmarad ez az átalakulás.
Így kell lennie?
Nem. Animált SIFCO kell kezelni egy kicsit másképp. A Google mintegy átméretezése animált gifok. Találkoztam egy ilyen probléma nem, nem tud segíteni.
Köszönöm. Sok már felvette.