Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Скрипт на отображение скина из сорца

Тема в разделе "[Архив] Помощь", создана пользователем UserDead, 16 авг 2013.

Статус темы:
Закрыта.
  1. Автор темы
    UserDead

    UserDead Старожил Пользователь

    Баллы:
    153
    Прошу прощения если не туда. Нужен я так понимаю php скрипт типа как в ЛК или webMCR. Суть скрипта чтобы с файла скина сделать предпросмотр спереди и сзади игрока. Я както видел такой скрипт он попиксельно обрезает и пеерворачивает фагменты делая что-то вроде этого.
    Найдется у кого нибудь что-то подобное?
    [​IMG]
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    UserDead

    UserDead Старожил Пользователь

    Баллы:
    153
    Просто хочу в лаунчере сделать предпросмотр скина из моей базы скинов (там в лаунчере собственно все и меняется)
     
  4. ihor_ku

    ihor_ku Активный участник Пользователь

    Баллы:
    88
    Skype:
    justmine_support
    PHP:
    <?php
    class Skin2d {
        private 
    $image NULL;
     
        function 
    __destructor () {
            if (
    $this->image != NULL) {
                
    imagedestroy($this->image);
            }
        }
     
        function 
    AssignSkinFromFile ($file) {
            if (
    $this->image != NULL) {
                
    imagedestroy($this->image);
            }
            if((
    $this->image imagecreatefrompng($file)) == False) {
                
    // Error occured
                
    throw new Exception("Could not open PNG file.");
            }
            if(!
    $this->Valid()) {
                throw new 
    Exception("Invalid skin image.");
            }
        }
     
        function 
    AssignSkinFromString ($data) {
            if (
    $this->image != NULL) {
                
    imagedestroy($this->image);
            }
            if((
    $this->image imagecreatefromstring($data)) == False) {
     
                throw new 
    Exception("Could not load image data from string.");
            }
            if(!
    $this->Valid()) {
                throw new 
    Exception("Invalid skin image.");
            }
        }
     
        function 
    Width () {
            if(
    $this->image != NULL) {
                return 
    imagesx($this->image);
            } else {
                throw new 
    Exception("No skin loaded.");
            }
        }
     
        function 
    Height () {
            if(
    $this->image != NULL) {
                return 
    imagesy($this->image);
            } else {
                throw new 
    Exception("No skin loaded.");
            }
        }
     
        function 
    Valid () {
            return (
    $this->Width() != 64 || $this->Height() != 32) ? False True;
        }
     
        function 
    FrontImage ($scale 1$r 255$g 255$b 255) {
            
    $newWidth 16 $scale;
            
    $newHeight 32 $scale;
     
            
    $newImage imagecreatetruecolor(1632);
            
    $background imagecolorallocate($newImage$r$g$b);
            
    imagefilledrectangle($newImage001632$background);
     
            
    imagecopy($newImage$this->image408888);
            
    $this->imagecopyalpha($newImage$this->image4040888imagecolorat($this->image630));
            
    imagecopy($newImage$this->image482020812);
            
    imagecopy($newImage$this->image820420412);
            
    imagecopy($newImage$this->image420420412);
            
    imagecopy($newImage$this->image1284420412);
            
    imagecopy($newImage$this->image084420412);
     
            if(
    $scale != 1) {
                
    $resize imagecreatetruecolor($newWidth$newHeight);
                
    imagecopyresized($resize$newImage0000$newWidth$newHeight1632);
                
    imagedestroy($newImage);
                return 
    $resize;
            }
     
            return 
    $newImage;
        }
     
        function 
    BackImage ($scale 1$r 255$g 255$b 255) {
            
    $newWidth 16 $scale;
            
    $newHeight 32 $scale;
     
            
    $newImage imagecreatetruecolor(1632);
            
    $background imagecolorallocate($newImage$r$g$b);
            
    imagefilledrectangle($newImage001632$background);
     
            
    imagecopy($newImage$this->image4024888);
            
    $this->imagecopyalpha($newImage$this->image4056888imagecolorat($this->image630));
            
    imagecopy($newImage$this->image483220812);
            
    imagecopy($newImage$this->image8201220412);
            
    imagecopy($newImage$this->image4201220412);
            
    imagecopy($newImage$this->image1285220412);
            
    imagecopy($newImage$this->image085220412);
     
            if(
    $scale != 1) {
                
    $resize imagecreatetruecolor($newWidth$newHeight);
                
    imagecopyresized($resize$newImage0000$newWidth$newHeight1632);
                
    imagedestroy($newImage);
                return 
    $resize;
            }
     
            return 
    $newImage;
        }
     
        function 
    CombinedImage ($scale 1$r 255$g 255$b 255) {
            
    $newWidth 37 $scale;
            
    $newHeight 32 $scale;
     
            
    $newImage imagecreatetruecolor(3732);
            
    $background imagecolorallocate($newImage$r$g$b);
            
    imagefilledrectangle($newImage003732$background);
     
            
    imagecopy($newImage$this->image408888);
            
    $this->imagecopyalpha($newImage$this->image4040888imagecolorat($this->image630));
            
    imagecopy($newImage$this->image482020812);
            
    imagecopy($newImage$this->image820420412);
            
    imagecopy($newImage$this->image420420412);
            
    imagecopy($newImage$this->image1284420412);
            
    imagecopy($newImage$this->image084420412);
     
            
    imagecopy($newImage$this->image25024888);
            
    $this->imagecopyalpha($newImage$this->image25056888imagecolorat($this->image630));
            
    imagecopy($newImage$this->image2583220812);
            
    imagecopy($newImage$this->image29201220412);
            
    imagecopy($newImage$this->image25201220412);
            
    imagecopy($newImage$this->image3385220412);
            
    imagecopy($newImage$this->image2185220412);
     
            if(
    $scale != 1) {
                
    $resize imagecreatetruecolor($newWidth$newHeight);
                
    imagecopyresized($resize$newImage0000$newWidth$newHeight3732);
                
    imagedestroy($newImage);
                return 
    $resize;
            }
     
            return 
    $newImage;
        }
     
        function 
    imagecopyalpha($dst$src$dst_x$dst_y$src_x$src_y$w$h$bg) {
            for(
    $i 0$i $w$i++) {
                for(
    $j 0$j $h$j++) {
     
                    
    $rgb imagecolorat($src$src_x $i$src_y $j);
     
                    if((
    $rgb 0xFFFFFF) == ($bg 0xFFFFFF)) {
                        
    $alpha 127;
                    } else {
                        
    $colors imagecolorsforindex($src$rgb);
                        
    $alpha $colors["alpha"];
                    }
                    
    imagecopymerge($dst$src$dst_x $i$dst_y $j$src_x $i$src_y $j11100 - (($alpha 127) * 100));
                }
            }
        }
    }
    ?><?php
    $path 
    $_GET['skinpath'];
    $test = new Skin2d();
    $test->AssignSkinFromFile($path);
     
    header('Content-type: image/png');
    $img $test->CombinedImage(5);
    imagepng($img);
    imagedestroy($img);
    ?>
     
    ernestito0789 и UserDead нравится это.
  5. Автор темы
    UserDead

    UserDead Старожил Пользователь

    Баллы:
    153
    @ihor_ku, оооо спасибо тебе) с меня лойс)
    Я может и сам разберусь а может спрошу тебя как выходит изображение с обработчика, тоесть как мне его процедить) Хотя вопрос наверное сложный. Хоят есть куда его залить и база скино есть, цедить запросом я так понял get[DOUBLEPOST=1376648132,1376646002][/DOUBLEPOST]Все разобрался, данные гененируются. Спасибо! Тема закрыта.
     
Статус темы:
Закрыта.

Поделиться этой страницей