[ kravko @ 03.12.2011. 12:16 ] @
Pozdrav,

Imam jedan problem i nadam se da netko zna rjesenje :)

Naime, imam funkciju koja croppa sliku na odredjene dimeznije, ali mi se ne ponasa isto kada je site na online serveru ili kad ju testiram u lokalu.

Funkcija pozvana na serveru/slika spremljena na server(winhost.com):


Funkcija testirana u localhostu/slika spremljena na localdisc (Virtual server):


Primjetite razliku u kvaliteti? A koristena je ista slika i ista funkcija

Metode (CropImageFile() je metoda koja cropa sliku)
Code:

 //Crops Image
    public static void CropImageFile(string ImageFrom, string ImageTo, int targetW, int targetH)
    {
        System.Drawing.Image imgPhoto = System.Drawing.Image.FromFile(ImageFrom);
        int targetX = (imgPhoto.Width - targetW) / 2;
        int targetY = (imgPhoto.Height - targetH) / 2;

        Bitmap bmPhoto = new Bitmap(targetW, targetH, PixelFormat.Format48bppRgb);
        bmPhoto.SetResolution(72, 72);
        Graphics grPhoto = Graphics.FromImage(bmPhoto);
        grPhoto.SmoothingMode = SmoothingMode.AntiAlias;
        grPhoto.InterpolationMode = InterpolationMode.HighQualityBicubic;
        grPhoto.PixelOffsetMode = PixelOffsetMode.HighQuality;
        grPhoto.DrawImage
                (
                imgPhoto,
                new Rectangle(0, 0, targetW, targetH),
                targetX,
                targetY,
                targetW,
                targetH,
                GraphicsUnit.Pixel
                );
        // Save out to memory and then to a file.  We dispose of all objects to make sure the files don't stay locked.
        EncoderParameters ep = new EncoderParameters(1);
        ep.Param[0] = new EncoderParameter(Encoder.Quality, (long)100);

        ImageCodecInfo ici = GetEncoderInfo("image/jpeg");

        imgPhoto.Dispose();
        grPhoto.Dispose();

        bmPhoto.Save(ImageTo, ici, ep);
        bmPhoto.Dispose();
    }

    //CodecInfo
    private static ImageCodecInfo GetEncoderInfo(String mimeType)
    {
        int j;
        ImageCodecInfo[] encoders;
        encoders = ImageCodecInfo.GetImageEncoders();
        for (j = 0; j < encoders.Length; ++j)
        {
            if (encoders[j].MimeType == mimeType)
                return encoders[j];
        }
        return null;
    }



Hvala unaprijed.
Pozz

[Ovu poruku je menjao kravko dana 03.12.2011. u 13:30 GMT+1]
[ kravko @ 08.12.2011. 01:44 ] @
ikakvih ideja?
[ Shadowed @ 08.12.2011. 08:40 ] @
Cini mi se da je bila slicna tema ranije ali ne mogu da se setim sta je bilo u pitanju.. Potrazi po .NET grupi foruma.

Btw, nije to crop slike. Crop je kada isecas deo.
[ kravko @ 08.12.2011. 10:14 ] @
sjece se dio slike posto sve moraju biti iste dimenzije. Slika "From" je veca od ove 2 prikazane. Ovo je samo dijelic te slike
[ kravko @ 12.12.2011. 20:37 ] @
problem je u codecima na serveru, nesto na sto ja ne mogu utjecati.

Moze Lock