Merhaba arkadaşlar, yaptığım sitede veritabanından çektiğim resimlerin boyutları çok büyük. Aşağıdaki gibi bir yer yaptım. Mesela aşağıdaki resim 690x690 boyutunda ama benim kullandığım yer 72x72. Dolayısıyla sayfa yüklenirken uzun sürüyor resim boyutlarından ötürü. Bunları kod kısmında nasıl resize ederek sayfayı hızlandıra bilirim.

alt text alt text

soruldu: 07 Nis '15, 03:19

zidan650's gravatar image

zidan650
375465260
cevap kabul oranı: 77%


Aşağıdaki kod bloğu ile sorunumu hallettim.

Picture = (byte[])dr["FOTO"];
                                byte[] buffer = Picture.ToArray();
                                MemoryStream memStream = new MemoryStream();
                                memStream.Write(buffer, 0, buffer.Length);
                                Image resim =  Image.FromStream(memStream);

                                MemoryStream memoryStream = new MemoryStream();
                                // Get the desired Encoder and Quality
                                EncoderParameters parameters = new EncoderParameters(1);
                                parameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 110L);
                                // Get the desired Codec
                                ImageCodecInfo myEncoder = null;
                                ImageCodecInfo[] encoders;
                                encoders = ImageCodecInfo.GetImageEncoders();
                                for (int counter = 0; counter < encoders.Length; counter++)
                                {
                                    if (encoders[counter].MimeType == "image/jpeg")
                                    {
                                        myEncoder = encoders[counter];
                                    }
                                }
                                resim.Save(memoryStream, myEncoder, parameters);

                                Picture= memoryStream.GetBuffer();

                                buffer = Picture.ToArray();
                                memStream = new MemoryStream();
                                memStream.Write(buffer, 0, buffer.Length);
                                resim = Image.FromStream(memStream);
                                int newWidth = resim.Width * 5 / 100;
                                int newHeight = resim.Height * 5 / 100;
                                Image.GetThumbnailImageAbort myCallback = new Image.GetThumbnailImageAbort(ThumbnailCallback);
                                Image imageToSave = resim.GetThumbnailImage(newWidth, newHeight, myCallback, IntPtr.Zero);
                                Byte[] result = (Byte[])new ImageConverter().ConvertTo(imageToSave, typeof(Byte[]));
                                Picture = result;
permanent link

cevaplandı: 07 Nis '15, 04:58

zidan650's gravatar image

zidan650
375465260
cevap kabul oranı: 77%

Eğer resim sayısı ve boyut oranları farklı ve fazla ise, Scale edip, CDN'de tutmalısın =)

1 milyon gibi mesela..

http://www.codeproject.com/Articles/2941/Resizing-a-Photographic-image-with-GDI-for-NET

permanent link

cevaplandı: 07 Nis '15, 03:34

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

o kadar fazla resim yok maksimum 2 bin tane.

(07 Nis '15, 03:43) zidan650 zidan650's gravatar image

Şu kütüphane işini fazlasıyla görecektir :)

http://imageresizing.net/

permanent link

cevaplandı: 07 Nis '15, 22:04

emrekacan's gravatar image

emrekacan
813304450
cevap kabul oranı: 9%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×158
×12
×1

Soruldu: 07 Nis '15, 03:19

Görüntüleme: 662 kez

Son güncelleme: 07 Nis '15, 22:04

powered by BitNami OSQA