Файл: monst/core/pag/av.php
Строк: 123
<?
upd_loc('upload avatar');
$temp_av_path = $HOME . '/content/av/temp/' . $user['id'] . '.png';
$av_path = $HOME . '/content/av/' . $user['id'] . '.png';
switch ( @$index[1] ) {
default:
if ( isset($_GET['bad_size']) ) print '<div class="error_box">'.$lang['av.php']['error']['bad_size'].'</div><br/><br/>';
if ( isset($_GET['not_im']) ) print '<div class="error_box">'.$lang['av.php']['error']['not_im'].'</div><br/><br/>';
if ( isset($_GET['no_aspect']) ) print '<div class="error_box">'.$lang['av.php']['error']['no_aspect'].'</div><br/><br/>';
if ( isset($_GET['no_file']) ) print '<div class="error_box">'.$lang['av.php']['error']['no_file'].'</div><br/><br/>';
?>
<div style='text-align: center;'>
<div class='padding'>
<?=$lang['av.php']['desc']?><br/>
<br/>
</div>
<form method='post' action='/av/crop' enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="<?= 1024 * 1024 * 10 ?>"/>
<input type='file' name='im'/><br/>
<br/>
<input type='submit' value='<?=$lang['av.php']['submit']['upload']?>'/>
</form>
</div>
<br/><br/>
<div style='text-align: center;'>
<a href='/setting'><?=$lang['av.php']['back']?></a>
</div>
<br/>
<?
break;
case 'crop':
function isImage($img){
return (bool)getimagesize($img);
}
if ( !isImage($_FILES['im']['tmp_name']) ) {
g('/main');
}
$im = $_FILES['im'];
if ($im['size'] > 1024 * 1024 * 10) {
g('/av?bad_size');
}
$w = getimagesize($im['tmp_name']);
if ( !$w ) {
g('/av?not_im');
}
if ( $w['mime'] == 'image/jpg' OR $w['mime'] == 'image/jpeg') {
$im_type = 'jpg';
} elseif ( $w['mime'] == 'image/png') {
$im_type = 'png';
} elseif ( $w['mime'] == 'image/gif') {
$im_type = 'gif';
} else {
g('/av?not_im');
}
if ($w[0] < 300) {
$new_w = $w[0];
$new_h = $w[1];
} else {
$new_w = 300;
$new_h = round($new_w * $w[1] / $w[0]);
}
if ( $im_type == 'jpg' ) {
$img_r = imagecreatefromjpeg($im['tmp_name']);
} elseif ( $im_type == 'png' ) {
$img_r = imagecreatefrompng($im['tmp_name']);
} elseif ( $im_type == 'gif' ) {
$img_r = imagecreatefromgif($im['tmp_name']);
}
$dst_r = ImageCreateTrueColor( $new_w, $new_h );
imagealphablending($dst_r, false);
imagesavealpha($dst_r, true);
imagecopyresampled($dst_r,$img_r,0,0,0,0,
$new_w,$new_h, $w[0], $w[1]);
imagepng($dst_r, $temp_av_path);
@chmod($HOME . $temp_av_path, 0666);
?>
<link rel='stylesheet' href='/core/s/css/Jcrop/jquery.Jcrop.css' type='text/css'/>
<script src='/core/j/jquery-3.2.1.min.js'></script>
<script src='/core/j/jquery.Jcrop.js'></script>
<script type="text/javascript">
$(function () {
$('#target').Jcrop({
aspectRatio: 1,
onSelect: updateCoords,
bgFade: true,
// bgOpacity: .5,
setSelect: [0, 0, 999, 999]
});
});
function updateCoords(c) {
$('#x').val(c.x);
$('#y').val(c.y);
$('#w').val(c.w);
$('#h').val(c.h);
}
;
function checkCoords() {
if (parseInt($('#w').val())) return true;
alert('Error!');
return false;
}
;
</script>
<div style='text-align: center;'>
<div class='padding'>
<?=$lang['av.php']['crop_desc']?>
</div>
<br/>
<img src="/content/av/temp/<?=$user['id']?>.png?<?=r()?>" id="target" style="border: 1px solid #222;"/>
<form action="/av/create" method="post" onsubmit="return checkCoords();">
<input type="hidden" name="crop" value="1"/>
<input type='hidden' id="x" name="x"/>
<input type='hidden' id="y" name="y"/>
<input type='hidden' id="w" name="w"/>
<input type='hidden' id="h" name="h"/>
<br/>
<input type="submit" value="<?=$lang['av.php']['submit']['save']?>"/>
</form>
</div>
<br/><br/>
<div style='text-align: center;'>
<a href='/av'><?=$lang['av.php']['back']?></a>
</div>
<br/>
<?
break;
case 'create':
if ( !file_exists($temp_av_path) ) {
g('/av?no_file');
}
if ( !isset($_POST['crop']) ) {
g('/av?no_aspect');
}
$w = (int)$_POST['w'];
$h = (int)$_POST['h'];
$x = (int)$_POST['x'];
$y = (int)$_POST['y'];
$targ_w = $targ_h = 300;
$src = $temp_av_path;
$img_r = imagecreatefrompng($src);
$dst_r = ImageCreateTrueColor($targ_w, $targ_h);
imagealphablending($dst_r, false);
imagesavealpha($dst_r, true);
imagecopyresampled($dst_r, $img_r, 0, 0, $x, $y,
$targ_w, $targ_h, $w, $h);
imagepng($dst_r, $av_path);
@chmod($av_path, 0666);
@unlink($temp_av_path);
?>
<div class='padding'>
<?=$lang['av.php']['upload_ok']?><br/>
</div>
<?
break;
}