1.300 kez okundu

Asp de Resim Üzerine Yazı Yazmak

10 10 1.300 kez okundu incelendi

Web Sayfalarında resimlerin telif hakları vb durumlar nedeni yada daha farklı nedenlerden dolayı resim üzerine yazı yazdırmak durumunda kalabiliryoruz.Bu gibi durumlarda kullanılabilecek bir yöntemle bu makaleyi paylaşıyorum.
Html Kodlarımız ( Aspx Sayfası)

<body>
    <form id="form1" runat="server">
    <div>
        <asp:FileUpload ID="FileUpload1" runat="server" />
        <asp:Button ID="btnIslem" runat="server" onclick="btnIslem_Click"
            Text="Button" />
    <asp:Label ID="lbldurum" runat="server"></asp:Label>
       </div>
    </form>
</body>

Csharp Kodlarımız

using System;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {


    }
    //İlgili Class'ımızı yazıyoruz.
    //Bitmap sınıfı aslında Image sınıfından türemiştir.
    //Bakınız :public sealed class Bitmap : Image
    //Image sınıfına ait birçok özellik ve metotlar vardır. Biz burada bu özellik ve metotların hepsine değinmeyeceğiz.  Örneğin Image sınıfının metotları sayesinde ilgili resmimiz Clone() metoduyla kopyalayabilir, RotateFlip(yön) ile döndürebilir, PhysicalDimensions ile orijinal boyutunu öğrenebilir, PixelFormat ile resmin piksel formatını öğrenebilir, HorizontalResolution ve VerticalResolution ile bir resmin yatay ve dikey çözünürlüğünü bu iki özellikle öğrenebiliriz (Çözünürlük bilgileri dpi ?dot per inch ? cinsindendir).
    //Bitmap türü grafikler (bmp, jpeg, gif vb.) için de Bitmap sınıfı kullanılır.
    //Metodumuz Bizden İşlem yapacaığımız resimi,resimin genişliğini,yüksekliğini,resim üzerine yazılacak olan metini ve metin yazılırken kullanılacak olan font'u istiyor olacaktır.
    private Bitmap MetinYaz(System.Drawing.Image resim, int genislik, int yukseklik, string metin, float font)
    {

        Bitmap resmim = new Bitmap(resim, genislik, yukseklik);

        System.Drawing.Graphics graf = System.Drawing.Graphics.FromImage(resmim);
        //fırça özelliğini kullanarak metinin rengini burada ayarlayabiliriz,daha ileri bir uygulama yapmak isterisek bunu metotdan aldırıp kullanıcıya rank seçdirebiliriz aslında ama burda biz direk Red oalrak belirledik.
        System.Drawing.SolidBrush firca = new SolidBrush(System.Drawing.Color.Red);
        //font tipi ve boyutu
        System.Drawing.Font fnt = new Font("Tahoma", font);

        System.Drawing.SizeF size = new SizeF(0, 0);

        System.Drawing.PointF coor = new PointF(0, 0);

        System.Drawing.RectangleF kutu = new RectangleF(coor, size);
        StringFormat sf = new StringFormat();
        sf.FormatFlags = StringFormatFlags.DirectionVertical;
        //resim üzerine yazı yazmak için Graphics sınıfından yaralanıyoruz ve Graphics sınıfının DrawString metodu ile bu işlemi gerçekleştiriyoruz.Bizden istediği derğerleride veriyoruz.
        graf.DrawString(metin, fnt, firca, kutu, sf);
        //artık elimizde üzerine metin girilmiş bir resim var ve bunu return ediyoruz.
        return resmim;

    }
    protected void btnIslem_Click(object sender, EventArgs e)
    {
        try
        {
            System.Drawing.Image i = System.Drawing.Image.FromStream(FileUpload1.PostedFile.InputStream);
        //metodu kullanıyoruz
        Bitmap b = MetinYaz(i, i.Width, i.Height, "Mustafa Ülkü", 48);

        b.Save(Server.MapPath("~/images/" + FileUpload1.FileName));
        lbldurum.Text = "İşlem Tamamlandı";
        }
        catch (Exception ex)
        {

            lbldurum.Text = "Hata Meydana Geldi :" + ex.Message.ToString();
        }
    }
}

Yorum yap

Barış Ozcan Facebook Sayfasi
Barış Ozcan Twitter