Kezdőoldal » Számítástechnika » Weblapkészítés » PHP:Képkonvertáló rossz...

PHP:Képkonvertáló rossz minőségben adja vissza a képet! hogyan tudnám kijavítani?

Figyelt kérdés

a kód(ok):

1.php:

<?php


/*

* File: SimpleImage.php

* Author: Simon Jarvis

* Copyright: 2006 Simon Jarvis

* Date: 08/11/06

* Link: [link]

*

* This program is free software; you can redistribute it and/or

* modify it under the terms of the GNU General Public License

* as published by the Free Software Foundation; either version 2

* of the License, or (at your option) any later version.

*

* This program is distributed in the hope that it will be useful,

* but WITHOUT ANY WARRANTY; without even the implied warranty of

* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

* GNU General Public License for more details:

* [link]

*

*/


class SimpleImage {


var $image;

var $image_type;


function load($filename) {


$image_info = getimagesize($filename);

$this->image_type = $image_info[2];

if( $this->image_type == IMAGETYPE_JPEG ) {


$this->image = imagecreatefromjpeg($filename);

} elseif( $this->image_type == IMAGETYPE_GIF ) {


$this->image = imagecreatefromgif($filename);

} elseif( $this->image_type == IMAGETYPE_PNG ) {


$this->image = imagecreatefrompng($filename);

}

}

function save($filename, $image_type=IMAGETYPE_JPEG, $compression=100, $permissions=null) {


if( $image_type == IMAGETYPE_JPEG ) {

imagejpeg($this->image,$filename,$compression);

} elseif( $image_type == IMAGETYPE_GIF ) {


imagegif($this->image,$filename);

} elseif( $image_type == IMAGETYPE_PNG ) {


imagepng($this->image,$filename);

}

if( $permissions != null) {


chmod($filename,$permissions);

}

}

function output($image_type=IMAGETYPE_JPEG) {


if( $image_type == IMAGETYPE_JPEG ) {

imagejpeg($this->image);

} elseif( $image_type == IMAGETYPE_GIF ) {


imagegif($this->image);

} elseif( $image_type == IMAGETYPE_PNG ) {


imagepng($this->image);

}

}

function getWidth() {


return imagesx($this->image);

}

function getHeight() {


return imagesy($this->image);

}

function resizeToHeight($height) {


$ratio = $height / $this->getHeight();

$width = $this->getWidth() * $ratio;

$this->resize($width,$height);

}


function resizeToWidth($width) {

$ratio = $width / $this->getWidth();

$height = $this->getheight() * $ratio;

$this->resize($width,$height);

}


function scale($scale) {

$width = $this->getWidth() * $scale/100;

$height = $this->getheight() * $scale/100;

$this->resize($width,$height);

}


function resize($width,$height) {

$new_image = imagecreatetruecolor($width, $height);

imagecopyresampled($new_image, $this->image, 0, 0, 0, 0, $width, $height, $this->getWidth(), $this->getHeight());

$this->image = $new_image;

}


}

?>

2.php:

<?php

include('1.php');

$image = new SimpleImage();

$image->load('1.jpg');

$image->resize(1366,768);

$image->save('2.jpg');

?>

az 1.jpg 1366x768as méretű!

a 2.jpg is.

a mérete pedig még így is a 36.19767781359396%-a!

a minősége pedig kb a negyede!

ez az egyetlen egy működő képes konvertáló az interneten.

Hol lehet beállítani a Kép minőségét?



2012. szept. 3. 17:20
 1/4 Drone007 ***** válasza:

Úgy látom, a kép minőségét a mentési procedúránál lehet állítani, de alapból 100%-ra van állítva.

Pl.: $image->save("2.jpg", 100);


Tehát, ha a kép rossz minőségben jön vissza, akkor vagy az eredeti képpel vannak gondok, vagy a te készülékedben van a hiba. Esetleg nézd meg milyen méretre lett konvertálva a 2. kép, mert lehet hogy a paraméterek ellenére kisebb lett, és ezért tűnik rossznak a felbontás. (bár ennek a hibának nem látom jelét a kódban)

2012. szept. 3. 17:46
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

felbontásban sajna nem látom a különbözést!

de én a méretről és a minőség romlásáról beszéltem!

az lett 36valahány% de ha a kódba 100helyett 500at írok akkor javulni fog vagy nem fog működni?

de ha te is letesztelnéd akkor sztem rájönnél arra , hogy én miről beszélek!


válaszodat drone várom!(de nem csak a tiédet...várom a többiekét is!)

2012. szept. 3. 18:05
 3/4 Drone007 ***** válasza:

Felesleges 100-asnál magasabb értéket megadni, nem fog működni.

Egy ilyen kódot átböngészni időpocsékolás. Javaslom írj egy saját képkezelő/feltöltő modult, és így a megírása közben sok dologra rájössz, nem utolsó sorban pedig folyamatosan tesztelheted a működését.

Egy ilyen apró modul semmiség annak, aki 150ezres honlapokat készít nemigaz?


Sok sikert!

2012. szept. 5. 22:52
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:

van benne igazság......

de azt azért ugye tudod , hogy én lustább vagyok mint egy lajhár?

ha van valami félkész....

....akkor minek írjak sajátot??

meg a legtöbb (1....)munkámat le is védettem!(asszem....vagy nem....)

de igen...sajátot írtam....

2012. szept. 7. 20:45

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!