folder Tahribat.com Forumları
linefolder Asp - Php - Cgi - Perl
linefolder Resmi, Çerçevede Boşluk Bırakmadan Boyutandırmak?



Resmi, Çerçevede Boşluk Bırakmadan Boyutandırmak?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tutkun
    tutkun's avatar
    Kayıt Tarihi: 20/Mayıs/2010
    Erkek

    Arkadaşlar merhaba,

    başlık yeteri kadar açık olmadı ama şöyle özetleyeyim:

    180x180 px boyutlarında bir çerçeve olduğunu düşünelim.

    Boyutu belirsiz(200x150 veya 150x200) gibi bir resmi ben bu çerçeveye tabiri caizse cuk oturtmak istiyorum.

    Yani resmin orantısını bozmadan çerçeveye yerleştirme yapacağım. Ancak resmin en küçük kenarı en az çerçevenin kenarı kadar olacak.

    Bu konuda algoritma oluşturamadım :D Yardımcı olacak arkadaşlara çok müteşekkirim :)


    Bilen konuşmuyor, konuşan bilmiyor...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    MaTRiXe
    MaTRiXe's avatar
    Kayıt Tarihi: 04/Ocak/2006
    Erkek

    resmin şeklini şemalini bozmadan nasıl mümkün olabilir ki bu ? Bir yerlerini kırpman gerekir en azından

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    aLsanCaK
    aLsanCaK's avatar
    Kayıt Tarihi: 30/Kasım/2007
    Erkek

    photoshop / edit / free transform

  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Cosmic
    Cosmic's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    çerçeveni 50px 50px şeklinde yap daha sonra divlere background vererek repeat larını iyi ayarlıyarak çerçeveni min boyutta oluşturt içine verdin mi resmi çerçeve genişler kaplar resmi


    Bittik biz bittik
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tutkun
    tutkun's avatar
    Kayıt Tarihi: 20/Mayıs/2010
    Erkek

    Hocam tam anlatamadım galiba.

    Ben html'de problem yaşamıyorum. Ben bir php sınıfındaki boyutlandırma fonksiyonu algoritmasından bahsediyorum.

    Yani sitede gözükecek resim boyutu -ki bu çerçeve oluyor- sabit(110x110) pixel. Şimdi elimdeki ürün resminin en uzun köşesini değil, en kısa köşesini 110'a çekeceğim. bu vesileyle uzun köşeden feragat edilecek.

    Ya büyük resme ortadan crop yapılmış gibi düşünün...

    Yanıtlar için çok teşekkürler.

    Not: Opencart'a entegre edecem.


    Bilen konuşmuyor, konuşan bilmiyor...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KaRaKuLe
    KaRaKuLe's avatar
    Banlanmış Üye
    Kayıt Tarihi: 17/Temmuz/2003
    Erkek

    Ancak resmin en küçük kenarı en az çerçevenin kenarı kadar olacak.

    bu cümleyi anlayan mealini yazsın :)


    Aklın nuru fen kalbin nuru dindir. İkisinin izdivacıyla hakikat tecelli eder.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tutkun
    tutkun's avatar
    Kayıt Tarihi: 20/Mayıs/2010
    Erkek

    KaRaKuLe bunu yazdı:
    -----------------------------

    Ancak resmin en küçük kenarı en az çerçevenin kenarı kadar olacak.

    bu cümleyi anlayan mealini yazsın :)


    -----------------------------

    ne bileyim hacı, aklıma gelen bu :)


    Bilen konuşmuyor, konuşan bilmiyor...
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    KodlayanAdam
    KodlayanAdam's avatar
    Kayıt Tarihi: 01/Ekim/2005
    Erkek

    c# da yaparım da php bilmem.

    mantık anlatayım...

    - değişkenler ----

    (float)Width = boyutlandırılacak resmin genişliği

    (float)Height = boyutlandırılacak resmin yüksekliği

    (float)Oran, (float)NewWidth, (float)NewHeight

    - işlem --------

    if(width >= 110 && height >= 110)
    {
    if(width > height){
    
      Oran = Width / Height;
    
      NewWidth = 110;
      NewHeight = 110 * Oran;
    
    }
    
    else{
    
      Oran = Height / Width ; 
    
      NewHeight = 110;
      NewWidth = 110 * Oran;
    
    }
    }

    Genel Mantık Bu şekilde olması gerekli.

    edit: burdaki mantıkla Genişlik ve Yüksekliklik eşit oranda küçüldüğü için resmin kalitesi bozulmaz.

    Resmi Çerçeveye Oturtma İşini Cssle değil de direk resmin üzerinde yapacaksanda.Yine php yok mantığı anlatayım

    110px X 110px new Bitmap Oluşturuyorsun.

    Bitmapin 0,0 noktasından 110X110 beyaz dikdörtgen çizdiriyorsun.

    NewHeight,NewWidth ile oluşturduğun resmi Bunlardan Hangisi 110 dan küçükse Onunla 110 arasındaki farkı 2 ye bölüyorsun(Mesela yükseklik 90 olmuş diyelim 110 - 90 / 2 = 10)

    çıkan sonuca göre Beyaz Bitmapin O kordinatına Resmi Çizdiriyorsun. (örnek: NewHeight = 90, NewWidth 110;  110 - 90 / 2 = 10; Oluşturulan Resim Beyaz Resmin 0,10 kordinatına gelecek,

    örnek2:  NewHeight = 110, NewWidth 80;

    Oluşturulan Resim Beyaz Resmin 15,0 kordinatına gelecek

    )

    EN Kısa Böyle Anlatabildim


    Hiç savaş görmemiş çocuklarla, hiç barış görüşmemiş çocuklar için adalet farklı anlamlar taşır.
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    ltcelik
    ltcelik's avatar
    Kayıt Tarihi: 11/Mayıs/2007
    Erkek

    Bir resmin bir çerçeveye cuk oturması için

    Resimin boyutlarının  çerçevenin boyutları ile aynı veya orantılı  olması lazım, ya da orantılanması lazım..

    çerçeve 120x40 ise "k" bir sayı olmak üzere k*120xk*40 olmalıdır.. 


    Din Kitaplarını Okuyup Anlayana Ateist, Okuyup Anlamayanlara "dindar" denir... Nikola TESLA.. ben mi? Ne okurum ne anlarım... Kendi kendime de uyuz oluyorum ama olamıyorum.. "Ama efsaneyi çıkarıp atarsan ve yaptıkları eylemlere bakarsan... ..Jedi'ların mirası başarısızlıktır. İkiyüzlülüktür, kibirdir."
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    tutkun
    tutkun's avatar
    Kayıt Tarihi: 20/Mayıs/2010
    Erkek

    Eyvallah, hallettim onu. max yerine min fonksiyonunu kullandım scala kısmında :) Vatandaş max yapmış resim tam boyut gözüksün diye. Sağolun...


    Bilen konuşmuyor, konuşan bilmiyor...
Toplam Hit: 1600 Toplam Mesaj: 10