image_save_uploaded_to_file($file, $att_type, $table, $id)"; $filtnamn=$file['tmp_name']; $filnamn=$file['name']; $filtyp=$file['type']; $fil=fopen($file['tmp_name'], "rb"); $filesize=$file['size']; if($prop=getimagesize($file['tmp_name'])) { //Om det r en bild $fildata=fread($fil, $filesize); $fildata=addslashes($fildata); $thmb=$fildata; //Lgg undan filen p servern if(!file_exists($path)) mkdir($path); move_uploaded_file($filtnamn, "$path/$filename"); //ndra storleken om den r fr stor image_resize($path, $filename, 700, 500, "$path/$filename"); image_resize($path, $filename, 150, 150, "$path/$tfilename"); } else { define('ERROR', "The uploaded file doesn't seem to be a valid image"); } } else add_error("The uploaded file doesn't seem to be a valid image"); } function image_remove_from_file($att_type, $table, $id) { //echo "
image_remove_from_file($att_type, $table, $id)"; //Ta bort filen p servern $uppath=IMG_UP_PATH."/".$_SESSION["IS_Username"]; $filename=$att_type."_".$id.".png"; $tfilename=$att_type."_".$id."_thmb.png"; unlink("$uppath/$filename"); unlink("$uppath/$tfilename"); //Fixa referens i databasen $sql="UPDATE ".sql_safe($table)." SET img_url=NULL, thmb=NULL WHERE id=".sql_safe($id).";"; //echo "
$sql"; mysql_query($sql); define('MESS', "Image has been removed"); } function image_Load_url_Jpeg ($imgname) { $im = ImageCreateFromJPEG ($imgname); /* Attempt to open */ if (!$im) { /* See if it failed */ $im = ImageCreate (150, 30); /* Create a blank image */ $bgc = ImageColorAllocate ($im, 255, 255, 255); $tc = ImageColorAllocate ($im, 0, 0, 0); ImageFilledRectangle ($im, 0, 0, 150, 30, $bgc); /* Output an errmsg */ ImageString ($im, 1, 5, 5, "Error $imgname", $tc); } return $im; } function image_save_url_to_file($img_url, $att_type, $table, $id) { //echo "
---image_save_url_to_file(".$img_url.", ".$att_type.", ".$id.")"; //Stt iordning skvgar och snt $uppath=IMG_UP_PATH."/".$_SESSION["IS_Username"]; $filename=$att_type."_".$id.".png"; $tfilename=$att_type."_".$id."_thmb.png"; //kolla s att mappen finns if(!file_exists($uppath)) mkdir($uppath); // initialize the image class $image = new GetImage; // just an image URL $image->source = $img_url; $image->save_to = "$uppath/"; // with trailing slash at the end $image->dest_name = $filename; $image->set_extension = ".png"; $get = $image->download('curl'); // using GD if($get) { define('MESS','The image has been saved.'); } else { define('ERROR','Something went wrong with your image!'); } //ndra storleken om den r fr stor image_resize($uppath, $filename, 700, 500, "$uppath/$filename"); image_resize($uppath, $filename, 150, 150, "$uppath/$tfilename"); //Fixa referens i databasen $sql="UPDATE $table SET img_url='".IMG_PATH."/".$_SESSION["IS_Username"]."/$filename', thmb='".IMG_PATH."/".$_SESSION["IS_Username"]."/$tfilename' WHERE id=".sql_safe($id).";"; //echo "
$sql"; mysql_query($sql); } function image_resize($path, $img, $max_width, $max_height, $destination) { $size=64*1024*1024; ini_set('memory_limit', $size); //echo "
image_open_from_file($path/$img)"; $image = image_open_from_file("$path/$img"); if ($image == false) { echo "

Unable to open image $path/$img for thumbcreation

"; return NULL; } else { //echo "

Creating thumbnail for $path/$img

"; // get originalsize of image $im = $image; $iwidth = imagesx($im); $iheight = imagesy($im); if($iwidth>$max_width) { // Set thumbnail-width to max_width pixel $imgw = $iwidth * ($max_width/$iwidth); // calculate thumbnail-height from given width to maintain aspect ratio $imgh = $iheight * ($max_width/$iwidth); } else if($iheight>$max_height) { // Set thumbnail-width to max_width pixel $imgw = $iwidth * ($max_height/$iheight); // calculate thumbnail-height from given width to maintain aspect ratio $imgh = $iheight * ($max_height/$iheight); } else { $imgw = $iwidth; $imgh = $iheight; } // create new image using thumbnail-size $thumb=ImageCreateTrueColor($imgw,$imgh); //Skaffa om det finns genomskinlig frg imagecolortransparent ($thumb , imagecolortransparent($im)); imagefill($thumb,0,0,0xFF00FF); // copy original image to thumbnail imagecopyresized($thumb,$im,0,0,0,0,$imgw,$imgh,$iwidth,$iheight); //Lgg p "vattenmrke" //Hmta frg och invertera // $x=35; // $y=$imgh-12; // $diff=45; // $rgb=imagecolorat ( $thumb , $x , $y); // $gr = ($rgb >> 16) & 0xFF; // $gg = ($rgb >> 8) & 0xFF; // $gb = $rgb & 0xFF; // echo "
RGB: $gr $gg $gb"; // if(($gr+$gg+$gb)>(128*3)) // { // Gr mrkare // $r=(int)(($gr*$diff)/100); // $g=(int)(($gg*$diff)/100); // $b=(int)(($gb*$diff)/100); // } // else // { // Gr ljusare // $r=255-(int)(((255-$gr)*$diff)/100); // $g=255-(int)(((255-$gg)*$diff)/100); // $b=255-(int)(((255-$gb)*$diff)/100); // } // echo "
RGB: $r $g $b"; // $tc = ImageColorAllocate ($thumb, $r, $g, $b); // ImageString ($thumb, 3, 5, $imgh-30, user_get_name($_SESSION[PREFIX.'user_id']), $tc); // ImageString ($thumb, 3, 5, $imgh-15, "at DreamHorse.se", $tc); // $tc = ImageColorAllocate ($thumb, 255, 0, 0); // imagesetpixel ( $thumb , $x , $y , $tc); imagepng($thumb, $destination); // clean memory imagedestroy ($im); imagedestroy ($thumb); } } function image_create_thmb_db($table,$column,$width) { if($bb=mysql_query("SELECT id, $column FROM ".$_SESSION["IS_prefix"]."$table;")) { while($b=mysql_fetch_array($bb)) { if($b[$column]!=NULL) { $image =@imagecreatefromstring($b[$column]); if ($image==false) { echo "

Unable to open image $table/$column:$b[id] for thumbcreation

"; mysql_query("update ".$_SESSION["IS_prefix"]."$table set $column=NULL where id=$b[id]"); } else { // get originalsize of image $im = $image; $iwidth = imagesx($im); $iheight = imagesy($im); if($iwidth>$width) { // Set thumbnail-width to 100 pixel $imgw = $iwidth * ($width/$iwidth); // calculate thumbnail-height from given width to maintain aspect ratio $imgh = $iheight * ($width/$iwidth); } else { $imgw = $iwidth; $imgh = $iheight; } // create new image using thumbnail-size $thumb=ImageCreateTrueColor((int)$imgw,(int)$imgh); //Skaffa om det finns genomskinlig frg imagecolortransparent ($thumb , imagecolortransparent($im)); imagefill($thumb,0,0,0xFF00FF); // copy original image to thumbnail imagecopyresized($thumb,$im,0,0,0,0,(int)$imgw,(int)$imgh,(int)$iwidth,(int)$iheight); imagejpeg($thumb, $img."___temp.jpg"); $filesize=filesize($img."___temp.jpg"); $fil=fopen($img."___temp.jpg","rb"); $fildata=fread($fil, $filesize); $fildata=addslashes($fildata); fclose($fil); unlink($img."___temp.jpg"); // clean memory imagedestroy ($im); imagedestroy ($thumb); mysql_query("UPDATE ".$_SESSION["IS_prefix"]."$table SET $column='$fildata' WHERE id=$b[id];"); } } } } } function image_create_jpg_db($db,$column,$maxwidth) { //Skapar en jpeg frn databasen if($bb=mysql_query("SELECT id, $column FROM ".$_SESSION["IS_prefix"]."$db;")) { while($b=mysql_fetch_array($bb)) { if($b[$column]!=NULL) { $im = @imagecreatefromstring($b[$column]); if($im == false) $im = @image_open_from_file("display_bmp.php?lista=$db&kolumn=$column&id=$b[id]"); if ($im == false) { echo "

Unable to open image $db/$column id:$b[id] for thumbcreation

"; } else { // get originalsize of image $iwidth = imagesx($im); $iheight = imagesy($im); if($iwidth>$maxwidth) { // Set thumbnail-width to 100 pixel $imgw = $iwidth * ($maxwidth/$iwidth); // calculate thumbnail-height from given width to maintain aspect ratio $imgh = $iheight * ($maxwidth/$iwidth); } else { $imgw = $iwidth; $imgh = $iheight; } // create new image using thumbnail-size $thumb=ImageCreateTrueColor((int)$imgw,(int)$imgh); //Skaffa om det finns genomskinlig frg imagecolortransparent ($thumb , imagecolortransparent($im)); imagefill($thumb,0,0,0xFF00FF); // copy original image to thumbnail imagecopyresized($thumb,$im,0,0,0,0,(int)$imgw,(int)$imgh,(int)$iwidth,(int)$iheight); imagejpeg($thumb, $img."___temp.jpg"); $filesize=filesize($img."___temp.jpg"); $fil=fopen($img."___temp.jpg","rb"); $fildata=fread($fil, $filesize); $fildata=addslashes($fildata); fclose($fil); unlink($img."___temp.jpg"); // clean memory imagedestroy ($im); imagedestroy ($thumb); mysql_query("UPDATE ".$_SESSION["IS_prefix"]."$db SET $column='$fildata' WHERE id=$b[id];"); } } } } } function image_open_from_file($file) { //KOLLA s att bilden inte r fr STOR!!! $prop=getimagesize($file); if(/*filesize($file)>100*1024*1024) // || */($prop[0]*$prop[1])>(1024*1280*1024)) //*/ { DEFINE('MESS', "Image is too big"); return false; } // echo "

ppnar $file...

"; # JPEG: $im = @imagecreatefromjpeg($file); if ($im !== false) { // echo "

ppnade $file...

"; return $im; } else { $im = @imagecreatefromjpeg($file); if ($im !== false) { // echo "

ppnade $file...

"; return $im; } } # PNG: $im = @imagecreatefrompng($file); if ($im !== false) { return $im; } # GIF: $im = @imagecreatefromgif($file); if ($im !== false) { return $im; } #BMP $im = @ImageCreateFromBMP("$file"); if ($im !== false) { return $im; } # GD File: $im = @imagecreatefromgd($file); if ($im !== false) { return $im; } # GD2 File: $im = @imagecreatefromgd2($file); if ($im !== false) { return $im; } # WBMP: $im = @imagecreatefromwbmp($file); if ($im !== false) { return $im; } # XBM: $im = @imagecreatefromxbm($file); if ($im !== false) { return $im; } # XPM: $im = @imagecreatefromxpm($file); if ($im !== false) { return $im; } # Try and load from string: $im = @imagecreatefromstring(file_get_contents($file)); if ($im !== false) { return $im; } echo "kunde inte pnna $file"; return false; } function ImageCreateFromBMP($filename) { //Ouverture du fichier en mode binaire if (! $f1 = fopen($filename,"rb")) return FALSE; //1 : Chargement des ent?tes FICHIER $FILE = unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset", fread($f1,14)); if ($FILE['file_type'] != 19778) return FALSE; //2 : Chargement des ent?tes BMP $BMP = unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'. '/Vcompression/Vsize_bitmap/Vhoriz_resolution'. '/Vvert_resolution/Vcolors_used/Vcolors_important', fread($f1,40)); $BMP['colors'] = pow(2,$BMP['bits_per_pixel']); if ($BMP['size_bitmap'] == 0) $BMP['size_bitmap'] = $FILE['file_size'] - $FILE['bitmap_offset']; $BMP['bytes_per_pixel'] = $BMP['bits_per_pixel']/8; $BMP['bytes_per_pixel2'] = ceil($BMP['bytes_per_pixel']); $BMP['decal'] = ($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] -= floor($BMP['width']*$BMP['bytes_per_pixel']/4); $BMP['decal'] = 4-(4*$BMP['decal']); if ($BMP['decal'] == 4) $BMP['decal'] = 0; //3 : Chargement des couleurs de la palette $PALETTE = array(); if ($BMP['colors'] < 16777216) { $PALETTE = unpack('V'.$BMP['colors'], fread($f1,$BMP['colors']*4)); } //4 : Cr?ation de l'image $IMG = fread($f1,$BMP['size_bitmap']); $VIDE = chr(0); $res = imagecreatetruecolor($BMP['width'],$BMP['height']); $P = 0; $Y = $BMP['height']-1; while ($Y >= 0) { $X=0; while ($X < $BMP['width']) { if ($BMP['bits_per_pixel'] == 24) $COLOR = unpack("V",substr($IMG,$P,3).$VIDE); elseif ($BMP['bits_per_pixel'] == 16) { $COLOR = unpack("n",substr($IMG,$P,2)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 8) { $COLOR = unpack("n",$VIDE.substr($IMG,$P,1)); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 4) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*2)%2 == 0) $COLOR[1] = ($COLOR[1] >> 4) ; else $COLOR[1] = ($COLOR[1] & 0x0F); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } elseif ($BMP['bits_per_pixel'] == 1) { $COLOR = unpack("n",$VIDE.substr($IMG,floor($P),1)); if (($P*8)%8 == 0) $COLOR[1] = $COLOR[1] >>7; elseif (($P*8)%8 == 1) $COLOR[1] = ($COLOR[1] & 0x40)>>6; elseif (($P*8)%8 == 2) $COLOR[1] = ($COLOR[1] & 0x20)>>5; elseif (($P*8)%8 == 3) $COLOR[1] = ($COLOR[1] & 0x10)>>4; elseif (($P*8)%8 == 4) $COLOR[1] = ($COLOR[1] & 0x8)>>3; elseif (($P*8)%8 == 5) $COLOR[1] = ($COLOR[1] & 0x4)>>2; elseif (($P*8)%8 == 6) $COLOR[1] = ($COLOR[1] & 0x2)>>1; elseif (($P*8)%8 == 7) $COLOR[1] = ($COLOR[1] & 0x1); $COLOR[1] = $PALETTE[$COLOR[1]+1]; } else return FALSE; imagesetpixel($res,$X,$Y,$COLOR[1]); $X++; $P += $BMP['bytes_per_pixel']; } $Y--; $P+=$BMP['decal']; } //Fermeture du fichier fclose($f1); return $res; } function imagehue(&$image, $angle, $width, $height) { if($angle % 360 == 0) return; // $width = imagesx($image); // $height = imagesy($image); for($x = 0; $x < $width; $x++) { for($y = 0; $y < $height; $y++) { $rgb = imagecolorat($image, $x, $y); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $alpha = ($rgb & 0x7F000000) >> 24; list($h, $s, $l) = rgb2hsl($r, $g, $b); $h += $angle / 360; if($h > 1) $h--; list($r, $g, $b) = hsl2rgb($h, $s, $l); imagesetpixel($image, $x, $y, imagecolorallocatealpha($image, $r, $g, $b, $alpha)); } } } function rgb2hsl($r, $g, $b) { $var_R = ($r / 255); $var_G = ($g / 255); $var_B = ($b / 255); $var_Min = min($var_R, $var_G, $var_B); $var_Max = max($var_R, $var_G, $var_B); $del_Max = $var_Max - $var_Min; $v = $var_Max; if ($del_Max == 0) { $h = 0; $s = 0; } else { $s = $del_Max / $var_Max; $del_R = ( ( ( $var_Max - $var_R ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; $del_G = ( ( ( $var_Max - $var_G ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; $del_B = ( ( ( $var_Max - $var_B ) / 6 ) + ( $del_Max / 2 ) ) / $del_Max; if ($var_R == $var_Max) $h = $del_B - $del_G; else if ($var_G == $var_Max) $h = ( 1 / 3 ) + $del_R - $del_B; else if ($var_B == $var_Max) $h = ( 2 / 3 ) + $del_G - $del_R; if ($h < 0) $h++; if ($h > 1) $h--; } return array($h, $s, $v); } function hsl2rgb($h, $s, $v) { if($s == 0) { $r = $g = $B = $v * 255; } else { $var_H = $h * 6; $var_i = floor( $var_H ); $var_1 = $v * ( 1 - $s ); $var_2 = $v * ( 1 - $s * ( $var_H - $var_i ) ); $var_3 = $v * ( 1 - $s * (1 - ( $var_H - $var_i ) ) ); if ($var_i == 0) { $var_R = $v ; $var_G = $var_3 ; $var_B = $var_1 ; } else if ($var_i == 1) { $var_R = $var_2 ; $var_G = $v ; $var_B = $var_1 ; } else if ($var_i == 2) { $var_R = $var_1 ; $var_G = $v ; $var_B = $var_3 ; } else if ($var_i == 3) { $var_R = $var_1 ; $var_G = $var_2 ; $var_B = $v ; } else if ($var_i == 4) { $var_R = $var_3 ; $var_G = $var_1 ; $var_B = $v ; } else { $var_R = $v ; $var_G = $var_1 ; $var_B = $var_2 ; } $r = $var_R * 255; $g = $var_G * 255; $B = $var_B * 255; } return array($r, $g, $B); } ?> Dreamhorse | News

Jockeys

Published by Vidde at 2018-01-10 14:59

You can now hire more jockeys that can help out with the horses. Check out your office! It changed slightly. :)

[-Show comments (151)-]

User skills

Published by Vidde at 2017-12-30 18:58

I kind of merged the request for user skills with the ones for jockeys/trainers. So now, you will get better the more you train horses in the different competition types!

Coming next is employees that you can hire to train your horses. And then they should be used in trotting, racing, dressage and jumping too! That will mean more decisions have to be made. The same jockey cannot be used for different horses in racing and trotting. The other ones can have the same jockey since the performance is not done simultaneously.

There is a lot to think about, but I have decided to start!

[-Show comments (0)-]

Morning competitions

Published by Vidde at 2017-12-21 18:44

We are doing a trial run with morning competitions. This will mean you will have to wait less time to find out what colors your new horses have or how fast they can run and so on.

Unless something horrible happens due to this, we will keep it like this. Maybe even shorten the time even further in the future?

[-Show comments (321)-]

More organic white inheritance

Published by Vidde at 2017-12-18 00:00

In short, horses now no longer inherit four of the preset white patterns, but has some changes made to the patterns inherited from the parents. This means you may start seeing some interesting patterns soon!

This also means judges will be somewhat clueless about pintos and so on. We might look into that later.

[-Show comments (0)-]

Introducing diseases

Published by Vidde at 2015-09-10 19:13

Good news, everyone! Horses can now get sick with various diseases.

What is going to happen?

Diseases will be generated automatically and excaped horses will contract these diseases. They will then infect other horses nearby. Horses on same farm will be infected by air born diseases while horses need to be in same stable to be infected by others.

If horse is not in a stable (the ones needing a box in your farm page) will be transmitting diseases to all of your horses, so put them inside.

What should I do?

You will notice a green button when having clicked a horse. Clicking that button will show you available vaccines as research gets done on them. You should give all your horses vaccines for all diseases where vaccines are available.

You will be able to monitor vaccination status for your horses through your office.

My horse got sick! What should I do now?

Seing a red plus on your horse in farm, "My things"->"Horses" or in office will alert you your horse is showing symptoms of a disease.

Click the horse and follow the link to see a vet!

Veterinarians are generated to help you diagnose your horse and pick out the most cost effective medicine. They will not be right every time, so there might be a point in getting second opinions if you feel the diagnosis does not make sense.

Now, keep safe! ;)

[-Show comments (0)-]

Badges

Published by Vidde at 2015-09-03 06:53

It is now possible to get badges for achievments in the game!

Please let me know what you want to get awarded a badge for!

[-Show comments (0)-]

Multiple stables

Published by Vidde at 2015-08-23 12:08

Great news; you can now have multiple stables on your farm.

If you had a bunch of boxes from before, you have been given stables to house them as a one-time bonus.

This makes it possible to manage groups of horses easier. You can have one stable for racing horses, one for brown ones, one for horses with cute names... Well, whatever floats your boat.

Let me know what you think!

[-Show comments (0)-]

New version

Published by Vidde at 2015-08-17 21:07

There has been a lot of changes in the background, and it is finally done enough that it can be live.

There are still some minor issues like links not pointing to the right place and missing translations. Report the ones you see on the feedback page!

Biggest visible change are the colors and that there is actually translation going on at the site.

News will remain untranslated until I have figured out how to best solve that puzzle. I have some ideas...

[-Show comments (0)-]

rss