seweso | donderdag 9 oktober 2003 @ 15:47 |
Is het mogelijk om een plaatje te maken met pallet én alpha-laag welke tevens bruikbaar is in php? Als ik in photoshop (5.0) kies voor de geindexeerde kleuren (image>mode>indexed color) dan vervalt bij het opslaan als png de optie om de alpha-laag mee op te slaan. Ik wil eigenlijk alleen de grijswaarden van het plaatje opslaan in een pallet zodat ik dit pallet snel kan aanpassen in php. Daarna wil ik dit plaatje rekeninghoudend met de alpha-laag toevoegen aan een ander plaatje. Heb trouwens al grayscale modus geprobeert maar toen ging php flippen. Eigenlijk wil ik dit systeem:
   combineren met deze:
 |
seweso | donderdag 9 oktober 2003 @ 16:34 |
testalpha.php (direct van php.net gepakt )php:
<? $photoImage = ImageCreateFromJPEG($url); ImageAlphaBlending($photoImage, true);
$logoImage = ImageCreateFromPNG($logo);
$logoImage = ImageSelectiveColor($logoImage, 0,128,255);
$logoW = ImageSX($logoImage); $logoH = ImageSY($logoImage);
ImageCopy($photoImage, $logoImage, 0, 0, 0, 0, $logoW, $logoH);
ImageJPEG($photoImage); // output to browser
ImageDestroy($photoImage); ImageDestroy($logoImage); ?>
image_jpeg.php (zelfgemaakt )php:
<? header("Expires: ".gmdate("D, d M Y H:i:s", time() + mktime(0,0,0,1,0,0))." GMT");
/*************************************************************************** * ImageCreateFromFile ***************************************************************************/ function imagecreatefromfile($filename) { $image_info = getimagesize ($filename); switch ($image_info[2]) { case 2: //IMAGETYPE_JPEG: return imagecreatefromjpeg($filename); case 3: //IMAGETYPE_PNG: return imagecreatefrompng($filename); case 1: //IMAGETYPE_GIF: return imagecreatefromgif($filename); }; exit("Error unknown type:".$image_info['mime']."(".$image_info[2].")"); };
if ($img == '') { $img = 'seweso-systems'; };
if (substr($img, 0, 7) != "http://") { $img = 'images/'.$img.'.png'; };
$image = imagecreatefromfile($img);
if (!$image) /* See if it failed */ { echo "error opening file..."; };
if (!isset($color)) { $src_width = imagesx($image); $src_height = imagesy($image); echo "<PRE>"; for ($iY = 0; $iY < $src_height; $iY++) { for ($iX = 0; $iX < $src_width; $iX++) { $color = ImageColorAt($image, $iX, $iY); $rgb = imagecolorsforindex ($image, $color); $color = str_pad(dechex($rgb['red']),2,"0", STR_PAD_LEFT).str_pad(dechex($rgb['green']),2,"0", STR_PAD_LEFT).str_pad(dechex($rgb['blue']),2,"0", STR_PAD_LEFT); //echo "#$color"; echo "<img src=image_jpeg.php?color=000000".$color."FFFFFF&img=".$img2.">"; }; echo "<BR/>"; }; echo "</PRE>"; exit(); }; //* $from_r = hexdec(substr($color, 0, 2)); $from_g = hexdec(substr($color, 2, 2)); $from_b = hexdec(substr($color, 4, 2)); $midl_r = hexdec(substr($color, 6, 2)); $midl_g = hexdec(substr($color, 8, 2)); $midl_b = hexdec(substr($color, 10, 2)); $last_r = hexdec(substr($color, 12, 2)); $last_g = hexdec(substr($color, 14, 2)); $last_b = hexdec(substr($color, 16, 2)); //*/
for ($i = 0; $i<=255; $i++) { // 0 = from, 128 = midl, 255 = last $new_r = $i < 128 ? (-1 * $i + 128) / 128 * $from_r + $i / 128 * $midl_r : ($i - 128) / 128 * $last_r + (-1 * $i + 255) / 128 * $midl_r; $new_g = $i < 128 ? (-1 * $i + 128) / 128 * $from_g + $i / 128 * $midl_g : ($i - 128) / 128 * $last_g + (-1 * $i + 255) / 128 * $midl_g; $new_b = $i < 128 ? (-1 * $i + 128) / 128 * $from_b + $i / 128 * $midl_b : ($i - 128) / 128 * $last_b + (-1 * $i + 255) / 128 * $midl_b; imagecolorset ($image, $i, $new_r, $new_g, $new_b); };
imagejpeg($image, null, 99); exit(); ?>
dus .... bovenstaand wil ik samenvoegen .... iemand een idee? |
seweso | vrijdag 10 oktober 2003 @ 21:11 |
Stel ik de vraag misschien verkeerd? Dit word namelijk wel een beetje zielig.... Heb ik de vraag verkeerd gesteld? Vertel het me aub Of doe maar een slotje, dan probeer ik het wel op te lossen met een omweg.... |
seweso | zaterdag 11 oktober 2003 @ 14:45 |
Ik kom hier voortaan gewoon elke dag mijn vraag bekijken...eens kijken hoeveel ik hier in mijn eentje kan posten voor hij op slot gaat.  |
sly2001 | zaterdag 11 oktober 2003 @ 14:55 |
-edit- [Dit bericht is gewijzigd door Slarioux op 11-10-2003 14:56] |
Sander | zaterdag 11 oktober 2003 @ 14:57 |
Tja, als niemand het weet kan ook niemand je helpen. Maar weet je zeker dat je een slotje wilt? |
sly2001 | zaterdag 11 oktober 2003 @ 15:06 |
Ik geef hem alleen maar een tip!! en dan word ie verwijderd.. belachelijk... Hier is het antwoord; Niet doen. waarom jezelf vermoeien als er zoveel leukere dingen te doen zijn. |
seweso | zondag 12 oktober 2003 @ 18:30 |
quote: Op zaterdag 11 oktober 2003 15:06 schreef sly2001 het volgende: Ik geef hem alleen maar een tip!! en dan word ie verwijderd.. belachelijk...Hier is het antwoord; Niet doen. waarom jezelf vermoeien als er zoveel leukere dingen te doen zijn.
Ach ja iedereen vindt andere dingen leuk, ik hou van proberen de grenzen van een programmeertaal te vinden.En laat dat slotje nog maar ff zitten, misschien dat er binnen een jaar iemand hier een antwoord op weet  |
sop | zondag 12 oktober 2003 @ 18:42 |
het kan aan mij liggen hè, maar als je die functie nou genest maakt. Dus je doet in de ene PHP de alpha laag en in een andere PHP de pallet. Of kun je als src image alleen met extentie JPG/GIF werken? en niet PHP?-edit- dus bijvoorbeeld in Image_Jpeg.php gebruik je als $filename gewoon 'testalpha.php?blablabla' Werkt dat niet? |
seweso | zondag 12 oktober 2003 @ 22:26 |
quote: Op zondag 12 oktober 2003 18:42 schreef sop het volgende: het kan aan mij liggen hè, maar als je die functie nou genest maakt. Dus je doet in de ene PHP de alpha laag en in een andere PHP de pallet. Of kun je als src image alleen met extentie JPG/GIF werken? en niet PHP?-edit- dus bijvoorbeeld in Image_Jpeg.php gebruik je als $filename gewoon 'testalpha.php?blablabla' Werkt dat niet?
Ja zoiets is wel mogelijk.Maar het probleem zit hem tevens in het feit dat png niet én een alpha-laag én een pallet aankan, en juist de ene php heeft een alpha-laag nodig en de andere een pallet. Dus.... |
sop | maandag 13 oktober 2003 @ 08:56 |
Ehm, als je dat weet, waarom wil je het dan toch?! |
seweso | maandag 13 oktober 2003 @ 11:47 |
quote: Op maandag 13 oktober 2003 08:56 schreef sop het volgende: Ehm, als je dat weet, waarom wil je het dan toch?!
Ik weet het niet 100% zeker omdat ik alleen nog maar png-plaatjes met photoshop 5.0 heb gemaakt, dus het zou heel misschien zo kunnen zijn dat het wél mogelijk is maar dan met een ander tekenprogramma...Een andere optie is om in php de alpha laag op een andere manier aan te leveren... |