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:
php:image_jpeg.php (zelfgemaakt<?
$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);
?>
php:dus .... bovenstaand wil ik samenvoegen .... iemand een idee?<?
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();
?>
Of doe maar een slotje, dan probeer ik het wel op te lossen met een omweg....
[Dit bericht is gewijzigd door Slarioux op 11-10-2003 14:56]
Hier is het antwoord;
Niet doen.
waarom jezelf vermoeien als er zoveel leukere dingen te doen zijn.
quote:Ach ja iedereen vindt andere dingen leuk, ik hou van proberen de grenzen van een programmeertaal te vinden.
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.
En laat dat slotje nog maar ff zitten, misschien dat er binnen een jaar iemand hier een antwoord op weet
-edit- dus bijvoorbeeld in Image_Jpeg.php gebruik je als $filename gewoon 'testalpha.php?blablabla'
Werkt dat niet?
quote:Ja zoiets is wel mogelijk.
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?
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....
quote: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...
Op maandag 13 oktober 2003 08:56 schreef sop het volgende:
Ehm, als je dat weet, waarom wil je het dan toch?!
Een andere optie is om in php de alpha laag op een andere manier aan te leveren...
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |