وبلاگ تفریحی

دانلود آهنگ، دانلود فیلم، دانلود عکس، اس ام اس

وبلاگ تفریحی

دانلود آهنگ، دانلود فیلم، دانلود عکس، اس ام اس

تی شرت رادان، حسن عباسی و پناهیان هم آمد! + عکس

در حالی که پیشتر برخی موسسه های فرهنگی در اقدامی جالب اقدام به تولید تی شرت هایی با تصاویر شهدای دوران دفاع مقدس کرده بودند اخیرا یک موسسه در اقدامی عجیب تی شرت چهره هایی مانند پناهیان،حسن عباسی،رادان و … را به فروش می رساند!   در اطلاعیه این موسسه علاوه بر تصاویر شهدای دوران […]

ASP.NET MVC

 اضافه کردن Watermark به تصاویر یک برنامه ASP.NET MVC                                  


            

31 مرداد 1392

 درگیر شدن با سایت‌های دیگر که چرا مطالب ما را کپی کرده‌اید نهایتا بجز فرسایش عصبی حاصل دیگری را به همراه ندارد.اساسا زمانیکه مطلبی را به صورت باز در اینترنت انتشار می‌دهید، قید کپی شدن یا نشدن آن‌را باید زد. اما ...می‌توان همین سایت‌ها را تبدیل به تبلیغ کننده‌های رایگان کار خود نمود که در ادامه نحوه انجام آن‌ را در یک برنامه ASP.NET MVC بررسی خواهیم کرد:

 

الف) نیاز است ارائه تصاویر تحت کنترل برنامه باشند.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System.IO;
using System.Net.Mime;
using System.Web.Mvc;
  
namespace MvcWatermark.Controllers
{
    public class HomeController : Controller
    {
        const int ADay = 86400;
  
        public ActionResult Index()
        {
            return View();
        }
  
        [OutputCache(VaryByParam = "fileName", Duration = ADay)]
        public ActionResult Image(string fileName)
        {
            fileName = Path.GetFileName(fileName); // تمیز سازی امنیتی است
            var rootPath = Server.MapPath("~/App_Data/Images");
            var path = Path.Combine(rootPath, fileName);
            if (!System.IO.File.Exists(path))
            {
                var notFoundImage = "notFound.png";
                path = Path.Combine(rootPath, notFoundImage);
                return File(path, MediaTypeNames.Image.Gif, notFoundImage);
            }
            return File(path, MediaTypeNames.Image.Gif, fileName);
        }
    }
}

 

 در اینجا یک کنترلر را مشاهده می‌کنید که در اکشن متد Image آن، نام یک فایل دریافت شده و سپس این نام در پوشه App_Data/Images جستجو گردیده و نهایتا در مرورگر کاربر Flush می‌شود. از آنجائیکه الزامی ندارد fileName، واقعا یک fileName صحیح باشد، نیاز است توسط متد استاندارد Path.GetFileName این نام دریافتی اندکی تمیز شده و سپس مورد استفاده قرار گیرد. همچنین جهت کاهش بار سرور، از یک OutputCache به مدت یک روز نیز استفاده گردیده است.

 نحوه استفاده از این اکشن متد نیز به نحو زیر است:

1
"@Url.Action(actionName: "Image", controllerName: "Home", routeValues: new { fileName = "EF_Stra_08.gif" })" />

 ب) آیا فراخوان تصویر ما را مستقیما در سایت خودش قرار داده است؟

1
2
3
4
5
6
7
8
9
private bool isEmbeddedIntoAnotherDomain
{
    get
    {
        return this.HttpContext.Request.UrlReferrer != null &&
               !this.HttpContext.Request.Url.Host.Equals(this.HttpContext.Request.UrlReferrer.Host,
                                                           StringComparison.InvariantCultureIgnoreCase);
    }
}

 در ادامه توسط خاصیت سفارشی isEmbeddedIntoAnotherDomain درخواهیم یافت که درخواست رسیده، از دومین جاری صادر شده است یا خیر. اینکار توسط بررسی UrlReferrer ارسال شده توسط مرورگر صورت می‌گیرد. اگر Host این UrlReferrer با Host درخواست جاری یکی بود، یعنی تصویر از سایت خودمان فراخوانی شده‌است.
ج) افزودن خودکار Watermark در صورت کپی شدن در سایتی دیگر

1
2
3
4
5
6
private byte[] addWaterMark(string filePath, string text)
{
    var image = new WebImage(filePath);
    image.AddTextWatermark(text);
    return image.GetBytes();
}

 کلاسی در فضای نام System.Web.Helpers وجود دارد به نام WebImage که کار افزودن Watermark را بسیار ساده کرده است. نمونه‌ای از نحوه استفاده از آن‌ را در متد فوق ملاحظه می‌کنید. اما ... پس از امتحان تصاویر مختلف ممکن است گاها با خطای زیر مواجه شویم:

1
A Graphics object cannot be created from an image that has an indexed pixel format.

 مشکل از اینجا است که تصاویر با فرمت ذیل برای انجام کار Watermark پشتیبانی نمی‌شوند:

1
2
3
4
5
6
7
PixelFormatUndefined
PixelFormatDontCare
PixelFormat1bppIndexed
PixelFormat4bppIndexed
PixelFormat8bppIndexed
PixelFormat16bppGrayScale
PixelFormat16bppARGB1555

 اما می‌توان تصویر دریافتی را ابتدا تبدیل به BMP کرد و سپس Watermark دار نمود:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
private byte[] addWaterMark(string filePath, string text)
{
    using (var img = System.Drawing.Image.FromFile(filePath))
    {
        using (var memStream = new MemoryStream())
        {
            using (var bitmap = new Bitmap(img))//avoid gdi+ errors
            {
                bitmap.Save(memStream, ImageFormat.Png);                       
                var webImage = new WebImage(memStream);
                webImage.AddTextWatermark(text, verticalAlign: "Top", horizontalAlign: "Left", fontColor: "Brown");
                return webImage.GetBytes();
            }
        }
    }
}

 در اینجا نمونه اصلاح شده متد addWaterMark فوق را بر اساس کار با تصاویر bmp و سپس تبدیل آن‌ها به png، ملاحظه می‌کنید. به این ترتیب دیگر به خطای یاد شده بر نخواهیم خورد. در ادامه، قسمت آخر کار، اعمال این مراحل به اکشن متد Image است:

1
2
3
4
5
6
7
if (isEmbeddedIntoAnotherDomain)
{
    var text = Url.Action(actionName: "Index", controllerName: "Home", routeValues: null, protocol: "http");
    var content = addWaterMark(path, text);
    return File(content, MediaTypeNames.Image.Gif, fileName);
}
return File(path, MediaTypeNames.Image.Gif, fileName

                   

                    


 

Textaizer Pro+ 5.0 Build 68 ساخت تصاویر متنی از عکس

Textaizer Pro+ 5.0 Build 68 این نرم افزار تصاویر دلخواه شما را به طرح های گرافیکی با کدهای ASCII تبدیل می کند و شما به راحتی می توانید عکس متنی ساخته شده را به فرمت HTML تبدیل نموده و در وب سایت تان قرار دهید. از طریق ویرایشگر ASCII نیز میتوانید تصاویر مورد نظر خود را طراحی و ذخیره کنید .

Mosaizer Pro+ 12.0 Build 204 ساخت آسان تصاویر موزائیکی

Mosaizer Pro+ 12.0 Build 204 احتمالا تا به حال در مجلات یا سایتهای مختلف تصاویری را دیده اید که تشکیل شده از صدها تصویر کوچک هستند.  تصاویری که معروف به تصاویر موزائیکی هستند. تصاویر موزائیکی یکی از جالب ترین و نوآورانه ترین ایده های مربوط به زمینه ی گرافیک می باشد که در خلق آن برای ساخت یک عکس از صدها عکس دیگر استفاده می شود که در نمای دور تصویر اصلی دیده شده و هر چه قدر که آن را بزرگ تر نماییم، تصاویری که هر یک خشتی شده اند برای ساخت این بنا بهتر نمایان می شوند. Mosaizer Pro نرم افزاری می باشد که به شما کمک می کند تا به سادگی هر چه تمام تر و تنها با چند کلیک، تصاویر موزائیکی را از عکس های مورد نظر خود بسازید .

آدرس اینستاگرام من

بعضی دوستان از من آدرس اینستاگرام خواسته بودن ؛ من حواسم نبود آدرس اشتباهی داده بودم

 

این آدرس اینستاگرام من هست نشونش هم اینه که فعلا یدونه عکس بیشتر داخلش نیست !!

 

قصد ندارم داخلش تصاویر طنز بذارم بیشتر تصاویر شخصی و مذهبی هست

 

hossein528