ugrás a tartalomhoz

php image rotate

Radon · Okt. 21. (Sze), 12.25
Helo.
Azzal a problémával találkoztam, hogy ha 1 képet töltenek fel, pl telefonról, akkor azt néha elforgatva tölti fel. megnéztem instán, és ott van 1 képszerkesztő a véglegesítés előtt, és abban tudod forgatni. Nyilván nincs ilyen editorom.

A probléma, hogy ha feltöltés után forgatom, akkor minden fordításnál ront a minőségen.


Amiket találtam:
1: image Orientation alapján. ez nem jó, mert egy elfordított képnek is 1 volt ez az értéke.
2: feltölti, és ha rossz, akkor forgatja, de mindig ront a minőségen.
3: 4 féle elforgatott képet tölt fel egyszerre, és ahogy forgatja, mindig azt a képet tölti be, és ha véglegesíti, a másik 3at törli.
4: PictureBox Rotations
Esetleg valami más technika?
A kérdésem, hogy milyen módszerrel szokás ezt megoldani?
Köszi.
 
1

5: Megkérded a felhasználót,

kuka · Okt. 22. (Cs), 01.43
5: Megkérded a felhasználót, forgatunk-e. Ha rábólint, feljegyzed az óhajt a kép járulékos adatai közé és amikor később megjeleníted, adsz az img-nek egy forogj class-t:

img.forogj {
  transform: rotate(90deg);
}
php image rotate
Ez így vékony problémaleírásnak. A PHP nem forgat. A GD, ImageMagick vagy GMagick modulok forgatnak. Nálad melyik volt?
2

Csak mint abszolút tudatlan:

mind1 valami név · Okt. 22. (Cs), 05.29
Csak mint abszolút tudatlan: a válaszod alapján a forgatas megoldható úgy, hogy csak a megjelenítéskor legyen elforgatva a kép.
A felsorolt modulok és társaik tudtommal fizikailag elforgatják a képet. Mivel a jpeg veszteseges tömörítést használ, minden ilyen műveletnél romlani fog a kép minősége.
Ez egyetlen forgatásnál nem feltűnő azt hiszem, de ha ugyanazt a képet forgatja sokadszor és mindig a forgatottat forgatja tovább, akkor viszonylag hamar észrevehető lesz a romlás.
Vagy nem erről van szó?
3

Így van, dehát mégis hány

kuka · Okt. 22. (Cs), 07.19
Így van, dehát mégis hány forgatást szándékszol végezni?

Amit még megtehetsz:
6: Először is PNG-be konvertálod a képet, azt meg már mindegy hányszor forgatod.
7: Megtartod az eredeti képet, minden forgatásnál feljegyzed a jelenlegi szöget, aztán az újabb forgatásokat az eredetiből készíted régi szög + új szög pozícióba.
4

Én? Egyet sem. Csak arra

mind1 valami név · Okt. 22. (Cs), 09.13
Én? Egyet sem. Csak arra utaltam, hogy a kérdező esetleg kicsit sokat tesztelt és ezért vette észre a minőségromlást vagy nem is tapasztalat,csak olvasott róla.
5

Nagyon jó megoldások. Köszi.

Radon · Okt. 22. (Cs), 14.22
Nagyon jó megoldások. Köszi. De nem tudok dönteni. Melyiket használnátok a 3 közül? Esetleg szerver kímélés, vagy felhasználói kényelem, gyorsaság alapján?

5:
 img.forogj {  
      transform: rotate(90deg);  
    }  
6: Először is PNG-be konvertálod a képet, azt meg már mindegy hányszor forgatod.

7: Megtartod az eredeti képet, minden forgatásnál feljegyzed a jelenlegi szöget, aztán az újabb forgatásokat az eredetiből készíted régi szög + új szög pozícióba.
6

5.

mind1 valami név · Okt. 22. (Cs), 15.11
5.
7

Attól függ

Endyl · Okt. 22. (Cs), 16.59
Ha elég egyszer forgatni, akkor feltöltéskor megkérdezem a felhasználót, hogy mennyit kell rajta forgatni, hogy jól álljon, és úgy mentem el.

Ha többször kell, akkor inkább a forgatott változatokat "gyorsítótáraznám" a szerveren, és mindig a megfelelőt szolgálnám ki.

Csak akkor tenném ki a kliensre a feladatot, ha nagyon nem oldható meg a szerveren.

A png-be konvertálást csak akkor csinálnám, ha nagyon fontos a kép minősége, és egy forgatást sem visel el. De ha megvan az eredeti, akkor ezt bármikor később is meg tudod tenni.
8

img.forogj { transform:

Radon · Okt. 23. (P), 19.21
img.forogj {  
  transform: rotate(90deg);  
} 
Ezt csináltam, ezzel meg az a baj, hogy a képet a lightbox js-el nagyítom ki, ha rányomnak, és ennek nem tudom átadni az sqlből vett elforgatás paramétert, mert az egy külön js program, és így az eredeti rosszul álló képet nagyítja ki.

A képen lévő linknek van 1 data-lightbox='url' paramétere, sehol nem tudom átírni ennek a megjelenítését. A külön js fájlokat nem tudom phpvel módosítani.

Mit csináljak? Esetleg keressek másik módot a képek kinagyításának?
Vagy hogyan tudom módosítani a lightbox megjelenítését (hozzáadni az elforgatást)?
9

Endyl leírta

Pepita · Okt. 26. (H), 08.45
Csak akkor tenném ki a kliensre a feladatot, ha nagyon nem oldható meg a szerveren.
Teljesen egyetértek, hiszen itt a forgatás oka nem az, hogy meg szeretném nézni másik nézetből is (pl műszaki rajz), hanem az, hogy anyuék fekszenek a levegőben (pl fotó).
Ez egyszeri (helyes) forgatást igényel, max kettőt, amiből az egyik inkább az eredeti.
Ezt célszerűbb a szerveren megoldani és tárolni a verziókat - ezáltal megszűnne a lightbox - os vagy bármi egyéb "vetítőgépes" problémád. (Egyébként biztos, hogy meg lehet paraméterezni, hogy forgassa, de nem érdemes, egyszerűbb backenden megoldani.)
10

https://stackoverflow.com/que

Poetro · Okt. 27. (K), 21.41
https://stackoverflow.com/questions/3343304/is-it-possible-to-perform-a-lossless-rotation-on-a-jpeg-image-in-php