[Bildmodul] : mit Größeneistellung und Hintergrundbild

Gesperrt
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

[Bildmodul] : mit Größeneistellung und Hintergrundbild

Beitrag von Karin Dähne »

Ich habe ein Bildmodul geschrieben mit folgenden Features:

* Auswahl Bildausgabesteuerung: Originalbildausgeben oder Bild bearbeiten;
* Auswahl Thumbnailausgabe: als Hintergrundbild, Bild, verlinktes Bild;
* Auswahl Thumbnailausgabe: als JPG oder PNG;
* Auswahl Thumbnailbreite;
* Auswahl Hintegrundbild: Keines oder Auswahl aus voreingestelltem Ordner;
* Auswahl Neue Farbe des Hintergrundbildes;
* Auswahl Abstand Thumbnail zum Rahmen, Breite: Dropdownliste;
* Auswahl Abstand Thumbnail zum Rahmen, Höhe: Dropdownliste;
* Auswahl Hintergrundskalieung: automatisch / quadratisch;

Leider bekomme ich die Programmierung nicht so recht hin, daß das Bild in einem Schritt, statt in mehreren Schritten erstellt wird.

Durch die Erstellung in mehreren Schritten leidet aber meines Erachtens die Bildqualität erheblich.

Vielleicht schafft jemand eine elegantere Lösung?

INPUT:

Code: Alles auswählen

/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname :  Bild mit Groesseneinstellung und Hintergrundbild
* Author    :  Karin Daehne
* Copyright :  Karin Daehne
* Created   :  18-01-2005
* Modified  :
************************************************/

$set_bgimagefiledir_img1 = "bilder/bgimages/";
echo '
<table cellspacing="0" cellpadding="10" border="0" style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 12px;">';

//-----------------Auswahl BILDDARSTELLUNG -----------------------
echo '
 <tr valign="top">
  <td colspan="3" style=" font-size: 12px; height: 30px; font-weight: bold; background: #ffffff;">Bildausgabe</td>';

$sel_thumbcreate_img1 = "CMS_VALUE[1000]";
echo '<td>
<select name="CMS_VAR[1000]" style=" width:250px;">';

if ($sel_thumbcreate_img1 == "0")
 {
 echo "<option value=\"0\" selected> als Original </option>";
 }else{
 echo "<option value=\"0\"> als Original </option>";
 }

if ($sel_thumbcreate_img1 == "1")
 {
 echo "<option value=\"1\" selected> bearbeiten </option>";
 }else{
 echo "<option value=\"1\"> bearbeiten </option>";
 }
echo "</select>";
echo "</td>
  </tr>";

echo "
 <tr valign=\"top\">
  <td></td>
  <td colspan=\"2\">
  <span style=\" font-weight: bold;\">Thumbnails anzeigen:</span>
  </td>
  <td>";


$sel_thumb_img1 = "CMS_VALUE[1002]";
echo '<select name="CMS_VAR[1002]" style=" width:250px;">';

if ($sel_thumb_img1 == "set_thumbbg_img1")
 {
 echo "<option value=\"set_thumbbg_img1\" selected>als Hintergrundbild</option>";
 }else{
 echo "<option value=\"set_thumbbg_img1\">als Hintergrundbild</option>";
 }

if ($sel_thumb_img1 == "set_thumbimage_img1")
 {
 echo "<option value=\"set_thumbimage_img1\" selected>als Bild</option>";
 }else{
 echo "<option value=\"set_thumbimage_img1\">als Bild</option>";
 }

if ($sel_thumb_img1 == "set_thumblink_img1")
 {
 echo "<option value=\"set_thumblink_img1\" selected>als verlinktes Bild</option>";
 }else{
 echo "<option value=\"set_thumblink_img1\">als verlinktes Bild</option>";
 }
echo "</select>";
echo "</td>
  </tr>";

if ($sel_thumbcreate_img1 == "0")
 {
  echo "";
 } else {

//-----------------Thumnail speichern als: -----------------
  echo "
   <tr valign=\"top\">
    <td></td>
    <td colspan=\"2\">Thumnailausgabe als:</td>
    <td>";
$sel_imagefiletyp_img1 = "CMS_VALUE[1003]";
echo "<select name=\"CMS_VAR[1003]\">";

if ($sel_imagefiletyp_img1 == "0")
 {
 echo "<option value=\"0\" selected> JPG </option>\n";
 }else{
 echo "<option value=\"0\"> JPG </option>\n";
 }

if ($sel_imagefiletyp_img1 == "1")
 {
 echo "<option value=\"1\" selected> PNG </option>\n";
 }else{
 echo "<option value=\"1\"> PNG </option>\n";
 }
echo "</select>";

echo "
  </td>
 </tr>";

//-----------------Auswahl Bildgroesse : Breite ---------------------------
echo "
 <tr valign=\"top\">
  <td></td>
  <td colspan=\"2\">Thumbnailbreite (Max.):</td>
  <td>";

$sel_thumbwidth_img1 = "CMS_VALUE[1004]";

echo "<select name=\"CMS_VAR[1004]\">";

for($set_thumbwidth_img1 = 100; $set_thumbwidth_img1 <= 250; $set_thumbwidth_img1 +=10)
{
if ($sel_thumbwidth_img1 == "$set_thumbwidth_img1")
 {
 echo "<option value=\"$set_thumbwidth_img1\" selected> $set_thumbwidth_img1 Pixel</option>\n";
 }else{
 echo "<option value=\"$set_thumbwidth_img1\"> $set_thumbwidth_img1 Pixel</option>\n";
 }
}

if($sel_thumbwidth_img1 == "1")
  {
   echo"<option selected=\"selected\" value=\"1\"> Andere </option>";
  }else{
   echo"<option value=\"1\"> Andere </option>";
  }
echo "</select>";

if($sel_thumbwidth_img1 == "1")
 {
 $set_thumbwidth_img1 = "CMS_VALUE[1005]";
 echo '<input type="text" name="CMS_VAR[1005]" value="CMS_VALUE[1005]" size="30">';
 }
echo "
  </td>
 </tr>";

echo '
 <tr bgcolor="#E8E8EE" valign="top">
  <td></td>
  <td colspan="2">
  <span style=" font-weight: bold;">Hintergrundbild auswählen:</span>
  </td>';

$sel_bgimagefile_img1 = "CMS_VALUE[1006]";
echo '<td><select name="CMS_VAR[1006]" style=" width:250px;">';

if($sel_bgimagefile_img1 != "0" && $sel_bgimagefile_img1 != "")
  {
  echo"<option value=\"0\">--- kein ---</option>";
  }else{
   echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>";
  }

  $sql_bgthumb_img1 =
  "SELECT filename, dirname FROM
  ".$cfg["tab"]["upl"]."
  WHERE dirname = '$set_bgimagefiledir_img1'
  ";

  // execute query
  $db->query($sql_bgthumb_img1);
  // loop result and build the options
  while ($db->next_record())
  {
   ?>
   <option value="<?php echo $db->f("filename") ?>"
   <?php if ($sel_bgimagefile_img1 == $db->f("filename")) echo " selected" ?>><?php echo $db->f("filename") ?>
   </option>
   <?php
  }

echo "</select>";

echo "
  </td>
 </tr>";

if ($sel_bgimagefile_img1 == "0" || $sel_bgimagefile_img1 == "")
 {
 echo "";
 } else {

//-----------------Farbe des Hintergrungbildes aendern:--------------
$set_bgimagecolor_img1 = "CMS_VALUE[1007]";
echo '
 <tr bgcolor="#E8E8EE" valign="top">
  <td></td>
  <td colspan="2">Neue Farbe eintragen:</td>
  <td>#<input type="text" name="CMS_VAR[1007]" value="CMS_VALUE[1007]" size="30"></td>
 </tr>';


//---------Abstand Thumbnail zum Rahmen : Breite -----------------
echo '
 <tr bgcolor="#E8E8EE" valign="top">
  <td></td>
  <td colspan="2">Abstand Thumbnail zum Rahmen, Breite:</td>
  <td>';

$sel_thumbdistanzwidth_img1 = "CMS_VALUE[1008]";

echo '<select name="CMS_VAR[1008]" style=" width:250px;">';
for($set_thumbdistanzwidth_img1 = 1; $set_thumbdistanzwidth_img1 <= 4; $set_thumbdistanzwidth_img1 +=1)
{
if ($sel_thumbdistanzwidth_img1 == "$set_thumbdistanzwidth_img1")
 {
 echo "<option value=\"$set_thumbdistanzwidth_img1\" selected>  $set_thumbdistanzwidth_img1 Pixel</option>\n";
 }else{
 echo "<option value=\"$set_thumbdistanzwidth_img1\"> $set_thumbdistanzwidth_img1 Pixel</option>\n";
 }
}

for($set_thumbdistanzwidth5_img1 = 5; $set_thumbdistanzwidth5_img1 <= 50; $set_thumbdistanzwidth5_img1 +=5)
{
if ($sel_thumbdistanzwidth_img1 == "$set_thumbdistanzwidth5_img1")
 {
 echo "<option value=\"$set_thumbdistanzwidth5_img1\" selected>  $set_thumbdistanzwidth5_img1 Pixel</option>\n";
 }else{
 echo "<option value=\"$set_thumbdistanzwidth5_img1\"> $set_thumbdistanzwidth5_img1 Pixel</option>\n";
 }
}
echo "</select>";

echo "
  </td>
 </tr>";

//---------Abstand Thumbnail zum Rahmen : Hoehe -----------------
echo '
 <tr bgcolor="#E8E8EE" valign="top">
  <td></td>
  <td colspan="2">Abstand Thumbnail zum Rahmen, Höhe:</td>
  <td>';

$sel_thumbdistanzheight_img1 = "CMS_VALUE[1009]";

echo '<select name="CMS_VAR[1009]" style=" width:250px;">';
for($set_thumbdistanzheight_img1 = 1; $set_thumbdistanzheight_img1 <= 4; $set_thumbdistanzheight_img1 +=1)
{
if ($sel_thumbdistanzheight_img1 == "$set_thumbdistanzheight_img1")
 {
 echo "<option value=\"$set_thumbdistanzheight_img1\" selected>  $set_thumbdistanzheight_img1 Pixel</option>\n";
 }else{
 echo "<option value=\"$set_thumbdistanzheight_img1\"> $set_thumbdistanzheight_img1 Pixel</option>\n";
 }
}

for($set_thumbdistanzheight5_img1 = 5; $set_thumbdistanzheight5_img1 <= 50; $set_thumbdistanzheight5_img1 +=5)
{
if ($sel_thumbdistanzheight_img1 == "$set_thumbdistanzheight5_img1")
 {
 echo "<option value=\"$set_thumbdistanzheight5_img1\" selected>  $set_thumbdistanzheight5_img1 Pixel</option>\n";
 }else{
 echo "<option value=\"$set_thumbdistanzheight5_img1\"> $set_thumbdistanzheight5_img1 Pixel</option>\n";
 }
}
echo "</select>";

echo "
  </td>
 </tr>";

//-----------------Scalieren des Hintergrundbildes: -----------------
  echo "
   <tr bgcolor=\"#E8E8EE\" valign=\"top\">
    <td></td>
    <td colspan=\"2\">Hintergrundskalieung:</td>
    <td>";
$sel_bgimagescale_img1 = "CMS_VALUE[1010]";
echo '<select name="CMS_VAR[1010]" style=" width:250px;">';

if ($sel_bgimagescale_img1 == "0")
 {
 echo "<option value=\"0\" selected> automatisch </option>\n";
 }else{
 echo "<option value=\"0\"> automatisch </option>\n";
 }

if ($sel_bgimagescale_img1 == "1")
 {
 echo "<option value=\"1\" selected> quadratisch </option>\n";
 }else{
 echo "<option value=\"1\"> quadratisch </option>\n";
 }
echo "</select>";

echo "
  </td>
 </tr>";
 } // END if ($selBgImageFile_img1 != "0")
} // END if ($sel_thumbcreate_img1 == "0")
echo "</table>";
OUTPUT:

Code: Alles auswählen

<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname :  Bild mit Groesseneinstellung und Hintergrundbild
* Author    :  Karin Daehne
* Copyright :  Karin Daehne
* Created   :  18-01-2005
* Modified  :
*
* Voreinstellungen:
* Ausgabe als Div-Container;
* Bildcontainer: "CMS_VALUE[1002]"
*(Damit es nicht mit anderen im Template kollidiert);
* Voreingestellter Pfad fuer Hintergrundbilder:
* $set_bgimagefiledir_img1 = "bilder/bgimages/";
* Voreingestellter Pfad fuer Autothumbnails:
* upload/bilder/auto_thumbnails;
*
* Features  :
* Auswahl Bildausgabesteuerung: Originalbildausgeben oder Bild bearbeiten;
* Auswahl Thumbnailausgabe: (als Hintergrundbild, Bild, verlinktes Bild);
* Auswahl Thumbnailausgabe: als JPG oder PNG;
* Auswahl Thumbnailbreite;
* Auswahl Hintegrundbild: Keines oder Auswahl aus voreingestelltem Ordner;
* Auswahl Neue Farbe des Hintergrundbildes;
* Auswahl Abstand Thumbnail zum Rahmen, Breite: Dropdownliste;
* Auswahl Abstand Thumbnail zum Rahmen, Höhe: Dropdownliste;
* Auswahl Hintergrundskalieung: automatisch / quadratisch;
*
************************************************/

//--------- Pfade fuer die Bilder START -------------------
//Frontendpfad ermitteln:
$query_path = "SELECT frontendpath, htmlpath FROM ".$cfg["tab"]["clients"]."
               WHERE idclient = '".$client."'";
$db->query($query_path);
$db->next_record();

$frontendpath = $db->f("frontendpath");
$htmlpath = $db->f("htmlpath");
$uploadpath = "upload/";
$thumbnailpath_img1 = "upload/bilder/auto_thumbnails/";
$get_thumbnail_img1 = basename($sel_image_img1);
//echo "Dateiname fuer gewaehltes Thumbnail: ".$get_thumbnail_img1."<br>";

$sel_imagealttag_img1 = "CMS_IMGALT[1001]";

$sel_image_img1 = "CMS_IMG[1001]";
//echo "Gewaehltes Bild: $sel_image_img1<br>";

$sel_thumbcreate_img1 = "CMS_VALUE[1000]";
//echo "Bild bearbeiten: $sel_thumbcreate_img1<br>";
if ($sel_thumbcreate_img1 == "0")
{
// $sel_image_img1 = "CMS_IMG[1001]";
//echo "Gewaehltes Bild: $sel_image_img1<br>";
 //$set_imagepath_img1 = $sel_image_img1;
 $set_imagepath_img1 = "{$htmlpath}{$sel_image_img1}";

//  $set_imagepath_img1 = "CMS_IMG[1001]";
//  echo "<br>Bildpfad: $set_imagepath_img1";
  $css_size_img1 = getimagesize($set_imagepath_img1);
//  echo "<br>Bildbreite: $css_size_img1[0]";
//  echo "<br>Bildhoehe: $css_size_img1[1]";

} else {
//$sel_image_img1 = "CMS_IMG[1001]";
//echo "Gewaehltes Bild: $sel_image_img1<br>";

$sel_imagefiletyp_img1 = "CMS_VALUE[1003]";
//echo "Gewaehlte Ausgabe: $sel_imagefiletyp_img1<br>";
$set_thumbwidth_img1 = "CMS_VALUE[1004]";
//echo "Gewaehlte Breite: $set_thumbwidth_img1<br>";
if ($set_thumbwidth_img1 == "1")
 {
  $set_thumbwidth_img1 = "CMS_VALUE[1005]";
 }

$sel_thumbdistanzwidth_img1 = "CMS_VALUE[1008]";
$sel_thumbdistanzheight_img1 = "CMS_VALUE[1009]";

$bgimagepath_img1 = "bilder/bgimages/";
 //echo "Bildpfad Hintergrundbild: $bgimagepath_img1<br>";
$sel_bgimagefile_img1 = "CMS_VALUE[1006]";
 //echo "Ausgew&auml;hltes Hintergrundbild: $sel_bgimagefile_img1<br>";
$set_bgimagecolor_img1 = "CMS_VALUE[1007]";
 //echo "Neue Farbe: $set_bgimagecolor_img1<br>\n";
if($set_bgimagecolor_img1 == "")
 {
 $set_bgimagecolor_img1 = "ffffff";
 } else {
 $set_bgimagecolor_img1 = "CMS_VALUE[1007]";
 }

//------------Farbaenderung START: ----------------------------
if ($sel_bgimagefile_img1 != "0" && $sel_bgimagefile_img1 != "")
 {
 $file_select_img1 = $frontendpath.$uploadpath.$bgimagepath_img1.$sel_bgimagefile_img1;
// echo "Ausgewähltes Bild: $file_select_img1<br>";
// $bgthumb_colored_img1 = "{$thumbnailpath_img1}bgcol_{$bg_imgnr}_{$sel_bgimagefile_img1}.jpg";

 $bgthumb_colored_img1 = "{$thumbnailpath_img1}bgcolored_{$set_bgimagecolor_img1}_{$sel_bgimagefile_img1}.png";

 $bgcolor_imagesize_img1 = GetImageSize($file_select_img1);

 if(isset($file_select_img1) && isset($set_bgimagecolor_img1))
  {
  if($bgcolor_imagesize_img1[2]==1)
   {
    $src_bgcolimage_img1 = ImageCreateFromGIF($file_select_img1);
   } elseif($bgcolor_imagesize_img1[2]==2) {
    $src_bgcolimage_img1 = ImageCreateFromJPEG($file_select_img1);
   } elseif($bgcolor_imagesize_img1[2]==3) {
    $src_bgcolimage_img1 = ImageCreateFromPNG($file_select_img1);
   }

   $get_bgthumbwidth_img1 = imagesx($src_bgcolimage_img1);
   $get_bgthumbheight_img1 = imagesy($src_bgcolimage_img1);

   $new_bgcolthumb_img1 = imagecreatetruecolor($get_bgthumbwidth_img1, $get_bgthumbheight_img1);

   if ($set_bgimagecolor_img1['CMS_VALUE[1007]']=="#")
   {
   $set_bgimagecolor_img1 = substr($set_bgimagecolor_img1,1);
   }
   $color_dec_img1 = hexdec($set_bgimagecolor_img1);

   $zielfarbe_img1 = array();
   $zielfarbe_img1['red'] = ($color_dec_img1 & 0xFF0000) >> 16;
   $zielfarbe_img1['green'] = ($color_dec_img1 & 0x00FF00) >> 8;
   $zielfarbe_img1['blue'] = ($color_dec_img1 & 0x0000FF);

   for($x=0; $x<$get_bgthumbwidth_img1; $x++)
   {
    for($y=0; $y<$get_bgthumbheight_img1; $y++)
     {
      $color_img1 = imagecolorsforindex($src_bgcolimage_img1, imagecolorat($src_bgcolimage_img1, $x, $y));
      $gray_img1 = ($color_img1['red']+$color_img1['green']+$color_img1['blue'])/3; // einfache Grauwertberechnung ohne Gewichtung
      $newcolor_img1 = array();
      $newcolor_img1['red'] = $zielfarbe_img1['red']*$gray_img1/256;
      $newcolor_img1['green'] = $zielfarbe_img1['green']*$gray_img1/256;
      $newcolor_img1['blue'] = $zielfarbe_img1['blue']*$gray_img1/256;
 
      if($newcolor_img1['red'] > 255) $newcolor_img1['red'] = 255;
      if($newcolor_img1['red'] < 0) $newcolor_img1['red'] = 0;
      if($newcolor_img1['green'] > 255) $newcolor_img1['green'] = 255;
      if($newcolor_img1['green'] < 0) $newcolor_img1['green'] = 0;
      if($newcolor_img1['blue'] > 255) $newcolor_img1['blue'] = 255;
      if($newcolor_img1['blue'] < 0) $newcolor_img1['blue'] = 0;
 
      $setthumbcolor_img1 = ImageColorAllocate($new_bgcolthumb_img1, $newcolor_img1['red'], $newcolor_img1['green'], $newcolor_img1['blue']);
      imagesetpixel ($new_bgcolthumb_img1, $x, $y, $setthumbcolor_img1);
     } // END for($y=0;
    } // END for($x=0;
  } // END  if(isset($file_select_img1)

 Imagepng($new_bgcolthumb_img1, $bgthumb_colored_img1,100);
// Imagejpeg($new_bgcolthumb_img1,$bgthumb_colored_img1,100);
 ImageDestroy($new_bgcolthumb_img1);
 ImageDestroy($src_bgcolimage_img1);

} // END if ($sel_bgimagefile_img1 != "0" && $sel_bgimagefile_img1 != "")
//------------Farbaenderung ENDE ----------------------------

  if ($sel_imagefiletyp_img1 == "0")
   {
    $thumbnail_img1 = "{$thumbnailpath_img1}thumbnail{$set_thumbwidth_img1}_{$get_thumbnail_img1}.jpg";
   }
  if ($sel_imagefiletyp_img1 == "1")
   {
    $thumbnail_img1 = "{$thumbnailpath_img1}thumbnail{$set_thumbwidth_img1}_{$get_thumbnail_img1}.png";
   }

  if (!file_exists($thumbnail_img1))
  {
  $thumb_imagesize_img1 = getimagesize($sel_image_img1);
  $thumb_scale_img1 = $thumb_imagesize_img1[0] / $set_thumbwidth_img1;
  //echo "Ermittelter Scalierungsfaktor: $thumb_scale_img1";

//  $get_thumbheight_img1 = round($thumb_imagesize_img1[1] * $set_thumbwidth_img1 / $thumb_imagesize_img1[0]);
  $get_thumbheight_img1 = round($thumb_imagesize_img1[1] / $thumb_scale_img1);
  //echo "Ermittelte neue Thumbnailhoehe: $get_thumbheight_img1";

  $new_thumbnail_img1 = ImageCreateTrueColor($set_thumbwidth_img1, $get_thumbheight_img1);
  
  if ($thumb_imagesize_img1[2] == 1)
   {
    $src_thumb_img1 = ImageCreateFromGIF($sel_image_img1);
   } elseif ($thumb_imagesize_img1[2] == 2) {
    $src_thumb_img1 = ImageCreateFromJPEG($sel_image_img1);
   } elseif ($thumb_imagesize_img1[2] == 3) {
    $src_thumb_img1 = ImageCreateFromPNG($sel_image_img1);
   } // END if ($thumb_imagesize_img1

  ImageCopyResampled ($new_thumbnail_img1, $src_thumb_img1, 0,0,0,0,  $set_thumbwidth_img1, $get_thumbheight_img1, $thumb_imagesize_img1[0],  $thumb_imagesize_img1[1]);

  if ($sel_imagefiletyp_img1 == "0")
   {
    imagejpeg ($new_thumbnail_img1, $thumbnail_img1,100);
   }
   if ($sel_imagefiletyp_img1 == "1")
   {
    imagepng ($new_thumbnail_img1, $thumbnail_img1,100);
   }
 } // END if (!file_exists($thumbnail_img1))
 //echo "Neues Bild: $thumbnail_img1<br>";


 if ($sel_bgimagefile_img1 != "0" && $sel_bgimagefile_img1 != "")
  {
  //------------Hintergrundbild an Tumgnail anfügen ----
  // aus Ordner "bilder/bg_artlist"
  //Neuer Thumbnaildateiname:

  $bg_thumbnail_img1 = "{$thumbnailpath_img1}bgthumb_{$set_bgimagecolor_img1}_{$set_thumbwidth_img1}x{$get_thumbheight_img1}.png";

  //Coloriertes Hintergrundbild auslesen:
  $bgcol_imagesize_img1 = getimagesize($bgthumb_colored_img1);
  //Generiertes Thumbnail auslesen:
  $thumb_imagesize_img1 = getimagesize($thumbnail_img1);

  //Gewaehlte Bildhoehe + gewaehlte Distanzhoehe:
  $bg_imagewidth_img1 = $set_thumbwidth_img1 + ($sel_thumbdistanzwidth_img1*2);
  //Ermittelte Bildhoehe + gewaehlte Distanzhoehe:
  $bg_imageheight_img1 = $thumb_imagesize_img1[1] + ($sel_thumbdistanzheight_img1*2);
/*
echo "
Ermittelte Breite des Thumbnails:".$thumb_imagesize_img1[0]."<br>
Errechnete Breite Hintergrundbild: $bg_imagewidth_img1<br>
Gesetzte Distanz: $sel_thumbdistanzwidth_img1<br>

Ermittelte Hoehe des Thumbnails:".$thumb_imagesize_img1[1]."<br>
Errechnete H&ouml;he Hintergrundbild: $bg_imageheight_img1<br>
Gesetzte Distanz: $sel_thumbdistanzheight_img1<br>
Ermittelte Hoehe des colorierten Hintergrundes:". $bgcol_imagesize_img1[1]."<br>";
*/
  // Bild laden:
  $src_bgimage_img1 = ImageCreateFromPNG($bgthumb_colored_img1);

  // Neues Thumbnail erzeugen:
  $new_bgthumbnail_img1 = ImageCreateTrueColor($bg_imagewidth_img1, $bg_imageheight_img1);

  // Kopiert das Ursprungsbild und formatiert es um + Weichzeichnung.
  ImageCopyResampled($new_bgthumbnail_img1, $src_bgimage_img1 ,0,0,0,0, $bg_imagewidth_img1, $bg_imageheight_img1, $bgcol_imagesize_img1[0], $bgcol_imagesize_img1[1]);

//        imagejpeg($new_bgthumbnail_img1,$bg_thumbnail_img1,100);
  imagepng($new_bgthumbnail_img1, $bg_thumbnail_img1,100);

 //echo "Neues Hintergrundbild: $bg_thumbnail_img1<br>";

    if ($sel_imagefiletyp_img1 == "0")
     {
      $thumbnailwithbg_img1 = "{$thumbnailpath_img1}bgthumb_{$set_thumbwidth_img1}x{$get_thumbheight_img1}_{$get_thumbnail_img1}.jpg";
     }
    if ($sel_imagefiletyp_img1 == "1")
     {
      $thumbnailwithbg_img1 = "{$thumbnailpath_img1}bgthumb_{$set_thumbwidth_img1}x{$get_thumbheight_img1}_{$get_thumbnail_img1}.png";
     }

  $file = $bg_thumbnail_img1;
  //echo "Scaliertes Hintergrundbild: $file<br>";

    if (file_exists($file))
     {
      // Originalformat auslesen
      $size = getimagesize($file);
      $width = $size[0];
      $height = $size[1];

  //Ueberpruefung des Skalierungsfaktors:
  $sel_bgimagescale_img1 = "CMS_VALUE[1010]";
//echo "Hintergrundscalierung: $sel_bgimagescale_img1<br>";
/*
echo "
Ermittelte Breite des Thumbnails:".$thumb_imagesize_img1[0]."<br>
Errechnete Breite Hintergrundbild: $bg_imagewidth_img1<br>
Gesetzte Distanz: $sel_thumbdistanzwidth_img1<br>

Ermittelte Hoehe des Thumbnails:".$thumb_imagesize_img1[1]."<br>
Errechnete H&ouml;he Hintergrundbild: $bg_imageheight_img1<br>
Gesetzte Distanz: $sel_thumbdistanzheight_img1<br>
Ermittelte Hoehe des colorierten Hintergrundes:". $bgcol_imagesize_img1[1]."<br>";
*/
  // Gewaehlt: Quadratisch:
   if ($sel_bgimagescale_img1 == "1")
    {
    $bg_imageheight_img1 = $bg_imagewidth_img1;
    $height = $width;
    }

      // Bild laden
 //   $old_picture = ImageCreateFromJPEG($file);
      $old_picture = ImageCreateFromPNG($file);
 
      // Neues Bild erzeugen
      $new_picture = ImageCreateTrueColor($width, $height);
 
      // Kopiert das Ursprungsbild und formatiert es um + Weichzeichnung.
      imagecopyresampled($new_picture, $old_picture, 0, 0, 0, 0, $width, $height, $width, $height);
      // Wasserzeichen einbinden
      $transparenz = 100;
      if ($sel_imagefiletyp_img1 == "0")
      {
      //echo "$thumbnail_img1";
       $watermarkfile = ImageCreateFromJPEG($thumbnail_img1);
      }
 
      if ($sel_imagefiletyp_img1 == "1")
       {
        $watermarkfile = ImageCreateFromPNG($thumbnail_img1);
       }

       $waternarkpic_width = imagesx($watermarkfile);
       $waternarkpic_height = imagesy($watermarkfile);
       $watermarkdest_x = $width / 2 - ($waternarkpic_width / 2);
       $watermarkdest_y = $height / 2 - ($waternarkpic_height / 2);
       imagecopymerge($new_picture, $watermarkfile, $watermarkdest_x, $watermarkdest_y, 0, 0, $waternarkpic_width, $waternarkpic_height, $transparenz);
       // Bild ausgeben
 
       if ($sel_imagefiletyp_img1 == "0")
       {
        imagejpeg($new_picture, $thumbnailwithbg_img1,100);
       }
  
       if ($sel_imagefiletyp_img1 == "1")
       {
        imagepng($new_picture, $thumbnailwithbg_img1,100);
       }

      } // END if (file_exists($file))
     } // END if ($sel_bgimagefile_img1 != "0" && $sel_bgimagefile_img1 != "")

     if ($sel_bgimagefile_img1 == "0")
     {
       $set_imagepath_img1 = "{$thumbnail_img1}";
       $css_size_img1 = getimagesize($set_imagepath_img1);
      } else {
       $set_imagepath_img1 = "{$thumbnailwithbg_img1}";
       $css_size_img1 = getimagesize($set_imagepath_img1);
      } // END  if ($sel_bgimagefile_img1 == "0")

  } // END if ($sel_thumbcreate_img1 == "0")
  $css_width_img1 = $css_size_img1[0]."px";
  $css_height_img1 = $css_size_img1[1]."px";
  $css_imagewidth_img1 = $css_size_img1[0]."px";
  $css_imageheight_img1 = $css_size_img1[1]."px";

  $css_imagebox_img1 = "style=\"width:$css_width_img1; height:$css_height_img1;";
  $css_image_img1 = "style=\"width:$css_imagewidth_img1; height:$css_imageheight_img1\"";
  
  $set_imagebox_start_img1 = "<div class=\"imagebox\" $css_imagebox_img1";
  $set_imagebox_end_img1 = "</div>";
  $set_thumbbg_img1 = " background: url($set_imagepath_img1) no-repeat bottom;";
  $set_thumbimage_img1 = "<img class=\"artlist-image\" $css_image_img1 src=\"$set_imagepath_img1\" alt=\"$sel_imagealttag_img1\" border=\"0\" />";
  $set_thumblink_img1 = "<a href=\"CMS_LINK[1001]\" target=\"CMS_LINKTARGET[1001]\" title=\"CMS_LINKTITLE[1001]\">$set_thumbimage_img1</a>";
  
  $sel_thumb_img1 = "CMS_VALUE[1002]";
  switch($sel_thumb_img1)
  {
   case "set_thumbbg_img1" :
        $sel_thumb_img1 =
        $set_imagebox_start_img1.$set_thumbbg_img1."\">".$set_imagebox_end_img1;//als Hintergrundbild:
   break;
   case "set_thumbimage_img1" :
        $sel_thumb_img1 =
        $set_imagebox_start_img1."\">".$set_thumbimage_img1.$set_imagebox_end_img1; //als Bild
   break;
   case "set_thumblink_img1" :
        $sel_thumb_img1 =
        $set_imagebox_start_img1."\">".$set_thumblink_img1.$set_imagebox_end_img1; //als verlinktes Bild
   break;
  }
  
  $set_thumbnail_img1 = $sel_thumb_img1;

echo '<div id="img1-box">';
echo "$set_thumbnail_img1";
echo '<div class="img1-imgdesc">';
echo "CMS_IMGDESCR[1001]";
echo "</div>";

$sel_thumb_img1 = "CMS_VALUE[1002]";
  if ($sel_thumb_img1 == "set_thumblink_img1")
  {
  echo '<div class="img1-linkdesc">';
  echo "CMS_LINKDESCR[1001]";
  echo "</div>";
  } else {
  echo "";
  }
echo "</div>";
?>
Grüße,
Karin Dähne.
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

schaut wirklich interessant aus...
wenn man sich da einlesen will vergehen sicher ein paar stunden... und die hab ich leider nicht... vielleicht ergibt sich es ja in nächster zeit...

ach ja welche gd version ist denn vorraussetzung damit das modul läuft ?
*** make your own tools (wishlist :: thx)
Karin Dähne
Beiträge: 140
Registriert: Fr 20. Feb 2004, 17:48
Wohnort: Braunschweig
Kontaktdaten:

Beitrag von Karin Dähne »

Hallo emergence,
emergence hat geschrieben: ach ja welche gd version ist denn vorraussetzung damit das modul läuft ?
Tja, leider weiß ich immer noch nicht, wo ich die Antwort auf diese Frage finde.

Ich habe aber mal bei meinem Provider eine "phpinfo.php" hinterlegt. Vielleicht gibt Dir das Aufschluß:
http://www.vita.virtualwork.de/phpinfo.php

Und vielleicht klärst Du mich ja mal auf ;-) ....

BTW: Ich habe im Quellcode extra Kommentare und (auskommentierte) Abfragen stehen lassen, damit die Nachvollziehung etwas einfacher ist, was wo passiert.

Stehe aber auch gern Rede und Antwort bei Fragen.
Da ich diese Bildconvertierung auch bei meiner Artikelliste einsetze, bin ich sehr an einer kompakteren Form des Quellcodes interessiert.



Grüße,
Karin.
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

Karin Dähne hat geschrieben:
emergence hat geschrieben:ach ja welche gd version ist denn vorraussetzung damit das modul läuft ?
Tja, leider weiß ich immer noch nicht, wo ich die Antwort auf diese Frage finde.

Ich habe aber mal bei meinem Provider eine "phpinfo.php" hinterlegt. Vielleicht gibt Dir das Aufschluß:
http://www.vita.virtualwork.de/phpinfo.php

Und vielleicht klärst Du mich ja mal auf ;-) ....
Du haettest nur bei deiner phpinfo.php nach "gd" suchen muessen. :wink:
GD Version bundled (2.0.15 compatible)
Gesperrt