نمایش نتایج 1 تا 10 از 10

نام تاپیک: اضافه اتوماتیک کپی رایت به عکس های آپلود شده

  1. #1

    Question اضافه اتوماتیک کپی رایت به عکس های آپلود شده

    من میخواهم عکس هایی که توسط ادمین آپلود میشه به طور اتوماتیک یه جمله کپی رایت بهشون اضافه بشه.
    در این مورد سرچ کردم و این مقاله رو پیدا کردم.
    http://www.codeproject.com/csharp/Watermark_Creator.asp
    کسی تاحالا اینکار و انجام داده؟
    و اینکه با Watermarkمیشه توی وب کار کرد؟

  2. #2
    از لینکی که دادید نمی تونید استفاده کنید زیرا:

    Before running the application do not forget to run "MarkMyImage.reg". This will create the necessary keys into your registry (to store user preference).

    و اما...
    روش کار به این صورته که ابتدا یک شئ از نوع Bitmap ایجاد میکنید و یک هندل گرافیکی برای کار بر روی ایمیج ساخته شده به دست میارید . سپس با صدا زدن متد DrawString شئ گرافیک ایجاد شده ، متن یا کاراکتر مورد نظر رو بر روی سطح گرافیکی ایجاد میکنید:

    Dim bmp As New System.Drawing.Bitmap(Server.MapPath(".") & ".\Images\myFile.jpg")
    Dim g As Graphics = System.Drawing.Graphics.FromImage(bmp)
    g.FillRectangle(New SolidBrush(Color.White), 0, 0, bmp.Width, 20)
    g.DrawString("این عکس مشمول قوانین کپی رایت است", New Font("Tahoma", 15), New SolidBrush(Color.Black), 1, 1)
    bmp.Save(Server.MapPath(".") & ".\Images\myFile.jpg", System.Drawing.Imaging.ImageFormat.Jpeg)

    هر دستوری را که متوجه نشدید، جهت توضیح بفرمایید.
    موفق باشید.

  3. #3
    آقا بهروز در مورد / ها حق با شما بود.ممنون از توضیحتون.
    ولی خط آخر رو هنوز مشکل دارم.
    +A generic error occurred in GDI
    این پیغام رو میده.ممکنه راهنماییم کنید.

  4. #4
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306
    سلام
    ببخشید سئوال من ربط زیادی به موضوع نداره ولی من هم با همین خطا مواجه شدم . البته یه پست جدید زدم ولی اتفاقی دیدم که اینجا هم مطرح شده .
    البته روی سیستم خودم این خطا پیش نمیاد و فقط موقعی که برنامه روی به روی یه سیستم دیگه جابجا میکنم این خطا رو میبینم .

  5. #5
    این خطا بدین خاطر رخ میدهد، چون کتابخانه ی +GDI، به منظور کارایی و افزایش سرعت کار، به جای خواندن تمامی اطلاعات تصویر، تنها اقدام به خواندن هدرهای تصویر که شامل اطلاعاتی همانند طول، عرض، تعداد رنگ ها و ... می کند.
    به همین خاطر، تا زمانی که شی Image اصلی از حافظه خارج نشده، شی یا کلاس دیگری مجاز به استفاده از آن تصویر نیست و بالطبع شما قادر به بازنویسی مجدد تصویر نخواهید بود و تصویر اصطلاحا Lock (قفل) است.
    به احتمال زیاد شما از دو کلاس Image استفاده کرده اید و در حالی که کلاس اول Dispose نشده است، کلاس دوم را به منظور انجام عملیات بر روی تصویر فراخوانی کرده اید!
    در ضمن، به منظور جلوگیری از کاهش محسوس افت تصویر در زمان تغییر سایز، از متد DrawImage کلاس Graphics استفاده کنید.
    از پروسیجر بی نقص زیر استفاده کنید:

    Private Sub CreateThumbnailImage(ByVal strFileName As String, ByVal imgThumbWidth As Int32, ByVal imgThumbHeight As Int32, ByVal strFileSavePath As String)
    Dim fullSizeImage As Drawing.Image = Drawing.Image.FromFile(strFileName)
    Dim thumbnailImage As Drawing.Image = fullSizeImage.GetThumbnailImage(imgThumbWidth, imgThumbHeight, Nothing, New IntPtr)
    Dim t As Drawing.Image = New Bitmap(imgThumbWidth, imgThumbHeight)
    Dim g As Graphics = Graphics.FromImage(t)
    g.DrawImage(thumbnailImage, 0, 0, t.Width, t.Height)
    fullSizeImage.Dispose()
    thumbnailImage.Dispose()
    g.Dispose()
    t.Save(strFileSavePath, Imaging.ImageFormat.Jpeg)
    End Sub


    موفق باشید.

  6. #6
    کاربر دائمی آواتار AspNet
    تاریخ عضویت
    آذر 1383
    محل زندگی
    سایت برنامه نویس
    پست
    469
    شاید این به دردتون بخوره:

    http://hima.ws/aspnet.aspx?id=1

  7. #7
    کاربر دائمی آواتار Happy_davood
    تاریخ عضویت
    دی 1383
    محل زندگی
    تبریز
    سن
    44
    پست
    306
    خوب من هم درباره این خطای :
    A Generic Error in GDI+

    ولی جواب شما مشکل من رو حل نمی کنه . بی زحمت به کد من هم نگاه کنید :

    byte[] ByteImageBytes = (byte[]) SQL_DataReader["Photo"];
    if(ByteImageBytes.Length != 0)
    {
    System.IO.MemoryStream MemStream = new System.IO.MemoryStream(ByteImageBytes);

    System.Drawing.Bitmap MemPhoto = new Bitmap(MemStream);
    MemPhoto.Save(Server.MapPath("") + "\\Images\\MemCardPhoto.JPG", System.Drawing.Imaging.ImageFormat.Bmp);


    this.ImageMemCardPhoto.ImageUrl = Server.MapPath("") + "\\Images\\MemCardPhoto.JPG";
    }
    else
    this.ImageMemCardPhoto.ImageUrl = Server.MapPath("") + "\\Images\\EmptyMemPhoto.JPG";

  8. #8
    درست می فرمایید!
    جوابی که دادم مربوط به تاپیک دیگری میشد (از بس ماشاا... تعداد سوالات زیاد هست)
    اما جواب بنده بی ربط هم نبوده....
    این خطا بدین خاطر رخ میدهد، چون کتابخانه ی +GDI، به منظور کارایی و افزایش سرعت کار، به جای خواندن تمامی اطلاعات تصویر، تنها اقدام به خواندن هدرهای تصویر که شامل اطلاعاتی همانند طول، عرض، تعداد رنگ ها و ... می کند.
    به همین خاطر، تا زمانی که شی Image اصلی از حافظه خارج نشده، شی یا کلاس دیگری مجاز به استفاده از آن تصویر نیست و بالطبع شما قادر به بازنویسی مجدد تصویر نخواهید بود و تصویر اصطلاحا Lock (قفل) است.
    به احتمال زیاد شما از دو کلاس Image استفاده کرده اید و در حالی که کلاس اول Dispose نشده است، کلاس دوم را به منظور انجام عملیات بر روی تصویر فراخوانی کرده اید!
    متغیر MemPhoto ، ارجاعی به Stream شما دارد ، از کد بنده ایده بگیرید و سعی در آزاد کردن هندل عکس کنید.
    موفق باشید.

  9. #9
    بعد از اضافه کردن متن به عکس سایز عکسم تغییر میکنه!مشکل از چیه؟آیا باید سایز عکس رو جایی تنظیم کنم؟ممنون میشم اگر من رو راهنمایی کنید.

  10. #10
    سلام دوستان :
    این مشکل GDI+ را نیز من هم بهش بر خوردم اما نکته اینجاست که لوکال مشکل ندارد و وقتی روی سرور می رود به اشکال بر می خورد .

    پر مشین رایت هم دادم اما نشد

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •