خبرهای فارسی

اخبار موسیقی، اخبار آی تی، اخبار ورزشی، اخبار استخدام

خبرهای فارسی

اخبار موسیقی، اخبار آی تی، اخبار ورزشی، اخبار استخدام

عکس‌های خیره کننده‌‌ای که معتبرترین جوایز عکاسی 2014 را درو کردند (بخش دوم)

عکس‌های برگزیده سال 2014 که جوایز معتبر جهانی را کسب کردند

سال 2014 به پایان رسید، اما مرور تصاویر برگزیده‎‌ی این سال هنوز به اتمام نرسیده، در بخش دوم این مطلب همراه با شما به بررسی دیگر تصاویر برتر رقابت‌های عکاسی سال گذشته خواهیم پرداخت. همراه زومیت در این بخش از شاتر باشید.

معرفی بی سروصدای ابزار ساخت تصاویر GIF برای یوتیوب

PhotoInstrument 7.2 Build 728 + Portable ویرایش و روتوش عکس

PhotoInstrument 7.2 Build 728 نرم افزاری کم حجم با کاربردی آسان اما حرفه ای با قابلیتهای بسیار ، جهت روتوش ( حذف جوش صورت ، قرمزی چشم و ... ) و ویرایش تصاویر شما میباشد. زمانیکه برای اولین بار با نرم افزار شروع به کار میکنید آموزشهای ویدئویی به شما نشان داده خواهد شد که چگونه میتوانید تصاویر خود را روتوش کنید و یا چگونه جلوها و افکت ها را به آن بیافزایید.رابط کاربری نرم افزار بسیار ساده و کاربر پسند میباشد و یک کاربر تازه کار با تماشای ویدئوها روش کار با نرم افزار را متوجه خواهد شد. نرم افزار ابزارهای بسیار زیاد ( 15 نوع براش ) و مختلفی که یک کاربر برای روتوش حرفه ای تصاویر نیاز دارد در اختیار شما قرار میدهد و امکان تغییر سایز دسته جمعی تصاویر و اضافه کردن متن به تصاویر وجود دارد. نرم افزار از فرمت PSD فتوشاپ و برخی پلاگین های فتوشاپ پشتیبانی می کند و قادر است تصاویر را با فرمت های مختلف ذخیره سازی کند نرم افزار حجم کمی دارد و از کمترین منابع سیستم شما RAM و CPU استفاده میکند.

AKVIS Neon 1.0.135.11190 x86/x64 تبدیل عکس به تصویر نئون و درخشان

AKVIS Neon 1.0.135.11190 نرم افزار گرافیکی که به شما این امکان را میدهد تا افکت‌ هایی با خطوط درخشان ایجاد کنید. این نرم‌افزار عکس را به یک تصویر نئون تبدیل می‌کند به گونه‌ای که انگار عکس با جوهر فلورسنت کشیده شده است. AKVIS Neon یک محیط ویرایش عکس ساده و آسان را برای شما فراهم می‌کند تا بتوانید تصاویری درخشان و شب‌تاب مانند را تولید کنید. این برنامه نیاز به هیچ مهارت خاصی ندارد و کار کردن با آن بسیار ساده است و تنظیمات از پیش تعریف شده‌ی زیادی را برای شما آماده کرده تا بتوانید به سرعت تصاویر متنوع باورنکردنی‌ای را تولید کنید. با AKVIS Neon که از سافت ۹۸ دانلود می‌کنید، تنها با کمی سلیقه می‌توانید تصاویر معمولی خود را به تصاویر مجلل و بسیار زیبا تبدیل کنید یا تصاویر مناظر طبیعی و پرتره رساتر و جالب‌تری خلق کنید.

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