Időzóna: (GMT +1 óra) RSS - hozzászólások

Avatar True Resize MOD

Szerző
Üzenet
Szoles
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.12.18. Hétfő 17:05
Hozzászólások: 378
Hozzászólás Elküldve: 2012.04.18. 01:07    Hozzászólás témája: Avatar True Resize MOD
Hozzászólás az előzmény idézésével
Avatar True Resize MOD, azaz "Avatar leméretező MOD" (Így sikerült éjjel lefordítanom, na! :mrgreen: )


A MOD-dal bármilyen méretű, avatarnak szánt képet feltölthet a user, mert a fórum automatikusan leméretezi az AVP-n beállított max avatar méretek szerint, és azt menti el.
Szerintem egy hasznos kis MOD.

Itt találtam: http://www.phpbb.com/community/viewtopic.php?f=434&t=685995&hilit=avatar#p12843287 , majd kicsit rendberaktam, mert a készítő elhanyagolta a dolgát.
Így tökéletesen működik 3.0.9-en.

---

A teljes MOD ennyi (sablon mindegy, hogy milyen):

Módosítandó fájl: includes/functions_upload.php


Keresd:

Kód:

if (!$this->upload->valid_dimensions($this))

Csere erre:

Kód:

if (!$this->upload->valid_dimensions($this) && $_GET['mode'] != 'avatar')




Keresd:

Kód:

/**
* Performing additional checks
*/

Elé, új sorba illeszd:

Kód:

/**
* Resize avatar with the true diemensions
*/
function resize_avatar()
{
   if ( $_GET['mode'] == "avatar" ) {
      $limite_largeur = $this->upload->max_width;
      $limite_hauteur = $this->upload->max_height;
      
      $size = getimagesize($this->destination_file);
      
      $largeur = $size[0];
      $hauteur = $size[1];

      if($hauteur > $limite_hauteur OR $largeur > $limite_largeur)
      {
          if($largeur > $limite_largeur)
          {
             $hauteur = $hauteur / ($largeur / $limite_largeur);
             $largeur = $limite_largeur;
          }
          if($hauteur > $limite_hauteur)
          {
             $largeur = $largeur / ($hauteur / $limite_hauteur);
             $hauteur = $limite_hauteur;
          }

          $destination = imagecreatetruecolor($largeur, $hauteur);

          if ( $this->extension == "jpg" || $this->extension == "jpeg" ) $source = imagecreatefromjpeg($this->destination_file);
          elseif ( $this->extension == "png" ) $source = imagecreatefrompng($this->destination_file);
          elseif ( $this->extension == "gif" ) $source = imagecreatefromgif($this->destination_file);

          imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur, $hauteur, $size[0], $size[1]);

          if ( $this->extension == "jpg" || $this->extension == "jpeg" ) imagejpeg($destination, $this->destination_file, 100);
          elseif ( $this->extension == "png" ) imagepng($destination, $this->destination_file);
          elseif ( $this->extension == "gif" ) imagegif($destination, $this->destination_file);
      }
   }
}



Keresd:

Kód:

phpbb_chmod($this->destination_file, $chmod);

Elé, új sorba illeszd:

Kód:

if ( $_GET['mode'] == 'avatar' ) $this->resize_avatar();



Amit még meg kell csinálni, hogy AVP-n az avatar maximális fájlméretét jó nagyra kell állítani, hogy a nagy fotók is beleférjenek a limitbe. Én például 3 MB-ra állítottam. (ez 3072000 bájt)
De ennek persze nincsen jelentősége, úgyis a leméretezett avatart menti el a fórum. Egyedül annyi történik, hogy ha marha nagy képet tölt fel valaki, akkor ez kis várakozással jár, de nem vészes.

---

Teszteltem, nem találtam hibát. (kérdésem azért persze lesz...)
_________________
carvingski.hu



A hozzászólás legutóbb Szoles által 2012.04.20. 13:14-kor lett szerkesztve, összesen 8 alkalommal.

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Szoles
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.12.18. Hétfő 17:05
Hozzászólások: 378
Hozzászólás Elküldve: 2012.04.18. 01:14    Hozzászólás témája:
Hozzászólás az előzmény idézésével
A kérdésem pedig az, hogy megoldható-e, miszerint ha a feltöltött nagy kép jpeg, akkor azt png formátumba méretezze és konvertálja?

Teszteltem: A "jpeg-ről jpeg-re" leméretezés elég gyengécske minőségű, viszont a "png-ről png-re" és a "gif-ről gif-re" ugyanannál az alapanyagnál sokkal szebb eredményt adott.

Tehát a png és gif leméretezés ok, csak a jpeg-ből kicsi png-t kellene csináltatni vele, gondolom az jobb lenne, mint a jpeg végeredmény. (Ha ez egyáltalán lehetséges.)

Ha ez nem lehetséges, akkor a jpeg tömörítést kellene maxra beállítani.

Kösz.

---

Szerkesztve: Időközben rájöttem, hogyan kell a legjobbra, 100%-osra állítani a leméretezett jpeg minőséget.
(Azért 100%-ra, mert ilyen kicsike képeknél még egy 95%-os is láthatóan rosszabb minőségű, pár KB különbség a képméreteknél pedig úgysem számít.)

Az első hsz-ben javítottam is eszerint a kódot.
_________________
carvingski.hu



A hozzászólás legutóbb Szoles által 2012.04.23. 10:51-kor lett szerkesztve, összesen 1 alkalommal.

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
szepylaci
Gyakorlott phpBB-s
Gyakorlott phpBB-s


Csatlakozott: 2009.07.26. Vasárnap 1:08
Hozzászólások: 108
Hozzászólás Elküldve: 2012.04.19. 23:54    Hozzászólás témája: Re: Avatar True Resize MOD
Hozzászólás az előzmény idézésével

Szoles írta:

Avatar True Resize MOD, azaz "Avatar leméretező MOD" (Így sikerült éjjel lefordítanom, na! :mrgreen: )


A MOD-dal bármilyen méretű, avatarnak szánt képet feltölthet a user, mert a fórum automatikusan leméretezi az AVP-n beállított max avatar méretek szerint, és azt menti el.
Szerintem egy hasznos kis MOD.

Itt találtam: http://www.phpbb.com/community/viewtopic.php?f=434&t=685995&hilit=avatar#p12843287 , majd kicsit rendberaktam, mert a készítő elhanyagolta a dolgát.
Így tökéletesen működik 3.0.9-en.

---

A teljes MOD ennyi (sablon mindegy, hogy milyen):

Módosítandó fájl: includes/functions_upload.php


Keresd:

Kód:

if (!$this->upload->valid_dimensions($this))

Csere erre:

Kód:

if (!$this->upload->valid_dimensions($this) && $_GET['mode'] != 'avatar')




Keresd:

Kód:

/**
* Performing additional checks
*/

Elé, új sorba illeszd:

Kód:

/**
* Resize avatar with the true diemensions
*/
function resize_avatar()
{
   if ( $_GET['mode'] == "avatar" ) {
      $limite_largeur = $this->upload->max_width;
      $limite_hauteur = $this->upload->max_height;
      
      $size = getimagesize($this->destination_file);
      
      $largeur = $size[0];
      $hauteur = $size[1];

      if($hauteur > $limite_hauteur OR $largeur > $limite_largeur)
      {
          if($largeur > $limite_largeur)
          {
             $hauteur = $hauteur / ($largeur / $limite_largeur);
             $largeur = $limite_largeur;
          }
          if($hauteur > $limite_hauteur)
          {
             $largeur = $largeur / ($hauteur / $limite_hauteur);
             $hauteur = $limite_hauteur;
          }

          $destination = imagecreatetruecolor($largeur, $hauteur);

          if ( $this->extension == "jpg" || $this->extension == "jpeg" ) $source = imagecreatefromjpeg($this->destination_file);
          elseif ( $this->extension == "png" ) $source = imagecreatefrompng($this->destination_file);
          elseif ( $this->extension == "gif" ) $source = imagecreatefromgif($this->destination_file);

          imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur, $hauteur, $size[0], $size[1]);

          if ( $this->extension == "jpg" || $this->extension == "jpeg" ) imagejpeg($destination, $this->destination_file, 100);
          elseif ( $this->extension == "png" ) imagepng($destination, $this->destination_file);
          elseif ( $this->extension == "gif" ) imagegif($destination, $this->destination_file);
      }
   }
}



Keresd:

Kód:

phpbb_chmod($this->destination_file, $chmod);

Elé, új sorba illeszd:

Kód:

phpbb_chmod($this->destination_file, $chmod);



Amit még meg kell csinálni, hogy AVP-n az avatar maximális fájlméretét jó nagyra kell állítani, hogy a nagy fotók is beleférjenek a limitbe. Én például 3 MB-ra állítottam.
De ennek persze nincsen jelentősége, úgyis a leméretezett avatart menti el a fórum. Egyedül annyi történik, hogy ha marha nagy képet tölt fel valaki, akkor ez kis várakozással jár, de nem vészes.

---

Teszteltem, nem találtam hibát. (kérdésem azért persze lesz...)
Szia!

Először is köszönöm,hogy elérhetővé tetted ezt a MOD-ot az újabb motorral rendelkezők számára is.
Viszont a teljesség kedvéért,az utolsó szerkesztési fázist hibásan raktad ide ki a fórumra,bár 100%-ig biztos vagyok benne,hogy véletlenül (CTRL+C-CTRL-V) történt.

Tehát az utolsó szerkesztés:

Keresd:

Kód:

phpbb_chmod($this->destination_file, $chmod);


illeszd elé egy új sorba:

Kód:

if ( $_GET['mode'] == 'avatar' ) $this->resize_avatar();


Egyébként kipróbáltam, 3.0.10 -es motorral is tökéletesen megy.

üdv.

Felhasználó profiljának megtekintése Privát üzenet küldése
Szoles
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.12.18. Hétfő 17:05
Hozzászólások: 378
Hozzászólás Elküldve: 2012.04.20. 09:39    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Szia!

Én örülök, ha olyat találtam, ami másnak is hasznos lehet.

Az utolsó módosítást valóban elírtam, elnézést, és kösz, hogy szóltál. Javítottam.


Ui: Nem lehet mindenki akkora mestere a CTRL+C-CTRL-V-nek, mint Scmitt Pali bácsi... :mrgreen:
_________________
carvingski.hu

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Szoles
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2006.12.18. Hétfő 17:05
Hozzászólások: 378
Hozzászólás Elküldve: 2012.04.20. 13:11    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Elnézést, lemaradt:

Ahhoz, hogy értelmesebb legyen a dolog, érdemes egy sort megváltoztatni a nyelvi fájlban is, mondjuk így:



Módosítandó fájl: /language/hu/ucp.php

Keresd:

Kód:

'AVATAR_EXPLAIN'            => 'Maximális méret: szélesség %1$d pixel, magasság %2$d pixel, állomány mérete %3$.2f KiB.',

Csere erre:

Kód:

'AVATAR_EXPLAIN'            => 'Avatar maximális mérete:<br>szélesség: %1$d pixel, magasság: %2$d pixel.<br>Az ennél nagyobb képet a fórum automatikusan lekicsinyíti.<br>Feltölthető legnagyobb képfájl: %3$.2f KB.',




Én sortörést is raktam bele , így néz ki: http://carvingski.hu/vegyes/images/avatar_szerkesztes.png

(a sortörések törléséhez törölni kell a <br> kódokat)
_________________
carvingski.hu

Felhasználó profiljának megtekintése Privát üzenet küldése Email küldése Felhasználó weblapjának megtekintése
Hozzászólások megtekintése:  

Időzóna: (GMT +1 óra) RSS - hozzászólások
Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés