WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Bildsammanslagning på serversidan (https://www.wn.se/forum/showthread.php?t=22979)

Forsgren 2007-08-19 13:53

Jag har ett litet problem.
Det är så att jag håller på med ett delscript som ska slå samman flera bilder till en. Den som hamnar överst i den "lagerstrukturen" är en PNG med en alphakanal.

Det fungerar bra överallt på bilden förutom den kant som hamnar ytterst mot det som är heltransparent. Där blir det en smal kant med ljusare pixlar. Något som inte finns med i originalbilden.

Någon som har förslag på en lösning till detta?

(hoppas att detta är rätt avdelning för en sådan här fråga)

hnn 2007-08-19 16:57

Hur ser det ut?

Kod? Resultat?

Forsgren 2007-08-19 18:29

http://www.gate303.net/kantbugg.png
Den ljusa kanten syns i mitten av bilden
(Bilden är här i dubbel storlek)


Kod:

<?php

header ("Content-type: image/png");
$imageurl = "upload/".$_GET["arg"];


//######################################

list($width, $height) = getimagesize($imageurl);
$new_width = 340;
$new_height = 480;

// Resample
$photoImage = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($imageurl);
imagecopyresampled($photoImage, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
ImageAlphaBlending($photoImage, true);
//######################################


$hackImage = ImageCreateFromPNG('hack.png');
imagesavealpha($hackImage,true);

$editImage = ImageCreateFromPNG('overlay.png');
imagesavealpha($editImage,true);

$logoW = ImageSX($photoImage);
$logoH = ImageSY($photoImage);

$coverW = ImageSX($editImage);
$coverH = ImageSY($editImage);

ImageCopy($hackImage, $photoImage, 3, 16, 0, 0, $logoW, $logoH);
ImageCopy($hackImage, $editImage, 0, 0, 0, 0, $coverW, $coverH);

imagepng($hackImage); // output to browser

ImageDestroy($photoImage);
ImageDestroy($hackImage);
ImageDestroy($editImage);
unlink($imageurl);

?>

Bilden byggs alltså upp av en "standardbild", ovanpå denna läggs en bild till, och sedan en "ram" bestående av en PNG.


Alla tider är GMT +2. Klockan är nu 15:57.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson