Php GD库映像创建问题

Php GD库映像创建问题,php,jquery,gd,Php,Jquery,Gd,我有一个gd图书馆问题。当我使用以下代码时 <script type="text/javascript"> $.fn.infiniteCarousel = function () { function repeat(str, num) { return new Array( num + 1 ).join( str ); } return this.each(function () { var $wrapper = $('&

我有一个gd图书馆问题。当我使用以下代码时

<script type="text/javascript">

$.fn.infiniteCarousel = function () {

    function repeat(str, num) {
        return new Array( num + 1 ).join( str );
    }

    return this.each(function () {
        var $wrapper = $('> div', this).css('overflow', 'hidden'),
            $slider = $wrapper.find('> ul'),
            $items = $slider.find('> li'),
            $single = $items.filter(':first'),

            singleWidth = $single.outerWidth(), 
            visible = Math.ceil($wrapper.innerWidth() / singleWidth), // note: doesn't include padding or border
            currentPage = 1,
            pages = Math.ceil($items.length / visible);            


        // 1. Pad so that 'visible' number will always be seen, otherwise create empty items
        if (($items.length % visible) != 0) {
            $slider.append(repeat('<li class="empty" />', visible - ($items.length % visible)));
            $items = $slider.find('> li');
        }

        // 2. Top and tail the list with 'visible' number of items, top has the last section, and tail has the first
        $items.filter(':first').before($items.slice(- visible).clone().addClass('cloned'));
        $items.filter(':last').after($items.slice(0, visible).clone().addClass('cloned'));
        $items = $slider.find('> li'); // reselect

        // 3. Set the left position to the first 'real' item
        $wrapper.scrollLeft(singleWidth * visible);

        // 4. paging function
        function gotoPage(page) {
            var dir = page < currentPage ? -1 : 1,
                n = Math.abs(currentPage - page),
                left = singleWidth * dir * visible * n;

            $wrapper.filter(':not(:animated)').animate({
                scrollLeft : '+=' + left
            }, 500, function () {
                if (page == 0) {
                    $wrapper.scrollLeft(singleWidth * visible * pages);
                    page = pages;
                } else if (page > pages) {
                    $wrapper.scrollLeft(singleWidth * visible);
                    // reset back to start position
                    page = 1;
                } 

                currentPage = page;
            });                

            return false;
        }

        $wrapper.after('<a class="arrow back">&lt;</a><a class="arrow forward">&gt;</a>');

        // 5. Bind to the forward and back buttons
        $('a.back', this).click(function () {
            return gotoPage(currentPage - 1);                
        });

        $('a.forward', this).click(function () {
            return gotoPage(currentPage + 1);
        });

        // create a public interface to move to a specific page
        $(this).bind('goto', function (event, page) {
            gotoPage(page);
        });
    });  
};

$(document).ready(function () {
  $('.infiniteCarousel').infiniteCarousel();

  $("a.pictureThumb").fancybox({
        'autoScale'     : true,
        'autoDimension' : true,
        'transitionIn'  :   'elastic',
        'transitionOut' :   'elastic',
        'speedIn'       :   300, 
        'speedOut'      :   200, 
        'hideOnOverlayClick' : true, 
        'hideOnContentClick': false 
    });
});
</script>
有了这个图像生成器,唯一的结果就是看起来像是编程代码而不是图像。这个脚本与另一个滚动条一起工作,但是由于我把这个新的滚动条脚本放在上面,我在生成图像时遇到了问题,即它只是显示加载图标,FireFox实际上显示了编程代码

下面是调用GD函数的代码:

<div class="infiniteCarousel">
  <div class="wrapper">
        <ul>
          <?php 
      do { ?>
          <li><a class="pictureThumb" href="picture.php?imgID=<?php $pieces = explode('_', $row_rsPictures['PictureFile']); echo $pieces[0]."_".$pieces[1]."_".$pieces[2]; if ($pieces[3] == "NN"){ echo "_NN_".$pieces[4]."_".$pieces[5];; } else { echo "_".$pieces[3]."_".$pieces[4]; } ?>&thumb=Y" title="&lt;a href=&#x27;addToCart.php?T=Pic?ID=<?php echo $row_rsPictures['PictureID']; ?>&#x27; target=&#x27;_parent&#x27; style=&#x27;color:#fe6d00&#x27;  &gt;Add This Image To Your Shopping Cart&lt;/a&gt;<br><?php echo $row_rsPictures['BoatName'];if($row_rsPictures['BoatNumber'] != "") {
                                     echo " #".$row_rsPictures['BoatNumber'];
                                     } ?><br>driven by: <?php echo $row_rsPictures['DriverName']; ?> at the <?php
                  $AssocName_array = explode('_', $row_rsPictures['Acronym']);
                  $AssocName = $AssocName_array[0];
                  if ($AssocName == "Various") {
                    $AssocName = "";
                    }            
                  if ($row_rsPictures['DateTo'] != ""){
                  $EventYear = date("Y", strtotime($row_rsPictures['DateTo']));
                  }
                    else { $EventYear = "";
                    }
                  echo $EventYear." ".$AssocName." ".$row_rsPictures['EventName'];?><br>Picture Viewed (<?php echo $row_rsPictures['Views']; ?>) since posted on <?php echo date("n-j-Y", strtotime($row_rsPictures['DatePosted'])); ?>" rel="group">
            <img src="../images/gallery/<?php $raceYear = explode('_', $row_rsPictures['EventOverlay']); echo $raceYear[0]; ?>/<?php echo $row_rsPictures['EventOverlay']; ?>/thumb/<?php echo $row_rsPictures['PictureFile']; ?>.jpg" alt="FileName: <?php echo $row_rsPictures['PictureFile'];?>"></a></li>
          <?php  
          } while ($row_rsPictures = mysql_fetch_assoc($rsPictures));
          mysql_data_seek($rsPictures, 0);
          ?>
        </ul>
      </div>
  </div>
以及生成图像的单独php文件

<?php  
$filename = explode("_", $_GET['imgID']);
$folder = $filename[0];
$subFolder = $filename[0]."_".$filename[1]."_".$filename[2];
if($filename[3] == "NN") {
    $subFolder = $subFolder."_NN";
    }
$shot = "../images/gallery/".$folder."/".$subFolder."/".$_GET['imgID'].".jpg";
$watermark = "../images/gallery/watermark.png";

header("Content-type: image/jpg");
$photoImage = ImageCreateFromJPEG($shot); 
ImageAlphaBlending($photoImage, true); 
$logoImage2 = ImageCreateFromPNG($watermark);

$im = imagecreatetruecolor(800, 16);
$im2 = imagecreatetruecolor(800, 10);
$white = imagecolorallocate($im, 255, 255, 255);
//imagefilledrectangle($photoImage, 0, 0, 796, 15, $white);
$grey = imagecolorallocate($im2, 128, 128, 128);
$red = imagecolorallocate($im2, 255, 0, 0);
//$im = imagecreatetruecolor(796, 25);
$text = $_GET['imgID'];
$text2 = 'COPYRIGHT 1997 - 2011 - DRAGBOATS.COM - ALL RIGHTS RESERVED';
$text3 = '^ THIS BAR WILL NOT APPEAR ON PURCHASED PRINTS ^';
//$black = imagecolorallocate($photoImage, 0, 0, 0);
imagestring($im, 2, 10, 1, $text, $white);
imagestring($im, 2, 440, 1, $text2, $white);
imagestring($im2, 1, 290, 1, $text3, $white);

ImageCopy($photoImage, $im, 0, 0, 0, 0, 800, 16);
ImageCopy($photoImage, $im2, 0, 17, 0, 0, 800, 10);
ImageCopy($photoImage, $logoImage2, 0, 0, 0, 0, 800, 525); 

ImageJPEG($photoImage); // output to browser 

ImageDestroy($photoImage); 
ImageDestroy($logoImage2);
?>
某个地方有冲突导致了问题,我找不到它

感谢您的帮助


实际页面可在

中找到。您似乎正在将原始图像数据输出到gallery弹出窗口中,.jpg文件中的字节,带有适当的标题,以便imgae被解释为文本而不是图像


如果下面的最后一段代码。。。对GD函数的调用都在一个文件中,这可以解释为什么。您将输出一块html,然后是原始图像数据,然后将其插入到gallery弹出窗口中。内容类型标题无法生效,因为您已经输出了一些html。如果您检查错误日志和/或实际启用错误/警告,您无疑会看到通常的无法修改标题,输出从PHP的第XXX行警告开始。

尝试将PHP内存限制设置为96M 128M-建议在PHP.ini文件中使用。如果您无法访问该文件,只需添加ini_set'memory_limit','128M';到您的php文件。这肯定有助于解决问题。

没有帮助,但我自己解决了。需要告诉FancyBox以图像的形式显式打开链接,即:FancyBox{'type':'image'};现在一切都好了!谢谢你们的帮助

不确定这是否是问题所在,但您的JPG内容类型标题应为image/jpeg请注意eNo,这似乎没有任何区别版主一定修改了帖子。这段php代码是它自己的独立文件。出于某种原因,他们把它放在了一起。我已经做了编辑,因为在这两个文件和Ok之间没有明确的分隔符,很抱歉。我只是对它做了一些编辑,让它更清晰。非常感谢。没有帮助,但我自己解决了。需要告诉FancyBox以图像的形式显式打开链接,即:FancyBox{'type':'image'};现在一切都好了!谢谢你们的帮助!你可以接受自己问题的答案。这样做是为了帮助其他人