aywars Posted August 29, 2012 Report Share Posted August 29, 2012 Sveiki! Veidojot e-veikalu, saskāros ar problēmu, ka produktu bildes var būt ļoti dažāda izmēra, taču tās visas ir jāievieto vienāda izmēra laukumā. Pieņemot, ka visas bildes ir horizontālas, diezgan labi darbojās šāda funkcija: function resize_pic($src, $size) { list($width,$height) = getimagesize($src); $height = floor(($height/$width) * $size); echo '<img src="'.$src.'" width="'.$size.'" height="'.$height.'" alt="" />'; } Tomēr ideālā pasaulē nedzīvojam, tādēļ šī funkcija neder. Būtībā ir 3 pamatvarianti: 1) Attēla augstums un platums ir vienāds (kvadrātaina bilde); 2) Platums ir lielāks par augstumu (horizontāla bilde); 3) Platums ir mazāks par augstumu (vertikāla bilde). Tomēr arī visiem šiem variantiem var būt variācijas - augstums, piemēram, var būt pavisam nedaudz lielāks nekā platums, vai daudz lielāks. Attiecīgi domāju, ka funkcija jāveido, ņemot vērā bildes malu attiecību. Neesmu diez ko labs matemātiķis, tāpēc prasu jūsu palīdzību: vai kāds var palīdzēt izdomāt funkciju, kas, ņemot vērā laukuma izmērus (tas būs kvadrāts) un bildes malu attiecību, samazinās visdažādākā izmēra bildes tieši tik daudz, lai tās ietilptu noteiktā laukumā un izmēra ziņā izskatītos vienādas. Pieņemam, ka visas bildes beidzas līdz ar malām (nav apkārt pārāk lieli balti laukumi). Obligāts nosacījums ir, ka bildes nedrīkst graizīt (crop). Paldies! Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted August 29, 2012 Report Share Posted August 29, 2012 tb lai dažāda izmēra taisnstūri un kvadrāti izskatās pēc vienādiem taisnstūriem nemainot malu attiecības un neko neapgriežot? Quote Link to comment Share on other sites More sharing options...
aywars Posted August 29, 2012 Author Report Share Posted August 29, 2012 (edited) Nu visam bildēm ir balts fons un es viņas lieku uz vienāda izmēra balta laukuma. Ir teiksim vertikāla bilde 150x300, un ir horizontāla, piemēram, 350x250. Ir laukums 300x300. Abas bildes vajag samazināt tā, lai viņās ietilptu šajā laukumā un blakus stāvot attēlu izmēri izskatītos vienādi. Vienādi nevis tādā ziņā, ka pikseļos, bet lai objekti attēlos izskatītos pēc viena mēroga. Lūk paraugs: Edited August 29, 2012 by aywars Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 29, 2012 Report Share Posted August 29, 2012 Proporcionāli samazini , bildi līdz tā kvadrāta malas lielumam, izveido bildi ar baltu kvadrātu - ievieto samazināto bildi tājā kvadrātā - kā to izdarīt , meklē pēc Watrmarks - ( tieši tā pat kā vedo udenszīmes, vienīgi, udenszīmes vietā, būs samazinātā bilde, bet bildes vietā tukša, balta bilde ) Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted August 29, 2012 Report Share Posted August 29, 2012 Ja tev tās bildes nevajag apstrādāt(Grey_Wolf variants) un nav jāsuportē kaut kādi veci pārlūki/versijas, tad vajadzētu pietikt ar max-width, max-height. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted August 29, 2012 Report Share Posted August 29, 2012 Ja tev tās bildes nevajag apstrādāt... tad vajadzētu pietikt ar max-width, max-height. Viņam vajag samazināt JEBKURU bildi uz noteiktu izmēru - teiksim kvadrātu .. kā tu ieteiktu to realizēt ar max-width, max-height??, tā lai bilde netiktu kropļota, un netiktu nogrieztas liekās malas ?? Iteiktu tomēr topiku izlasīt, un tikai tad bliezt atbild ... Quote Link to comment Share on other sites More sharing options...
v3rb0 Posted August 29, 2012 Report Share Posted August 29, 2012 (edited) viņam vajag saglabāt objekta mērogu starp bildēm, bet vienā bildē var būt redzama tikai objekta daļa (aļa telefona pogas), vai vairāki objekta attēli, un iespējams vairākās rindās, vai arī objekta šaurākā mala pieckārtīgā palielinājumā. gl with this. Edited August 29, 2012 by v3rb0 Quote Link to comment Share on other sites More sharing options...
xPtv45z Posted August 29, 2012 Report Share Posted August 29, 2012 Sirmais vilk, kurš viņš saka, ka viņam bildes vajag kā kvadrātus? Es vienīgais ko redzu ir, ka vajag, lai dažāda izmēra bildes ietilptu viena izmēra kvadrātos. vai kāds var palīdzēt izdomāt funkciju, kas, ņemot vērā laukuma izmērus (tas būs kvadrāts) un bildes malu attiecību, samazinās visdažādākā izmēra bildes tieši tik daudz, lai tās ietilptu noteiktā laukumā un izmēra ziņā izskatītos vienādas. Ir teiksim vertikāla bilde 150x300, un ir horizontāla, piemēram, 350x250. Ir laukums 300x300. Abas bildes vajag samazināt tā, lai viņās ietilptu šajā laukumā Ieteiktu tomēr apdomāt ko esi izlasījis topikā, pirms bliezt atbildi.. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.