PDA

View Full Version : بکاپ گیری از عکس های موجود در نرم افزار بایگانی عکس



systam
جمعه 28 تیر 1392, 20:53 عصر
سلام

برای یک نرم افزار بایگانی عکس وقتی تعداد عکس ها به 6 هزار تا ظرفیت هر کدوم حدوداً 3 مگ هست
بهترین راه حل برای پشتیبان گیری چیه ؟

نحوه ذخیره اطلاعات مسیر عکس در بانک و عکس در پوشه از برنامه میباشد

دوستان اساتید بزرگان شما چی پیشنهاد میکنید ؟


ممنون میشم راهنماییم کنید



یا علی

erfan_urchin
شنبه 29 تیر 1392, 02:01 صبح
اگه کاربر این بکاپ رو فقط میخواد توی برنامه شما restore کنه به نظر من از دیتابیست بکاپ بگیر
backup database imageDB to disk= 'E:\my folder'
و همچنین برای restore کردن بکاپ از کد زیر استفاده کن
restore database imageDB from disk= 'E:\my folder'

systam
شنبه 29 تیر 1392, 09:42 صبح
سلام
یعنی با این کار تمامی محتویات پوشه مورد نظر رو در بانک ذخیره میکنه ؟

erfan_urchin
یک شنبه 30 تیر 1392, 00:11 صبح
نه پوشه رو ذخیره نمیکنه
آخه کار شما اشتباهه
شما دارین مسیر عکس هارو تو بانک ذخیره میکنین شما باید خود عکس هارو به صورت بایت به بایت در بانک ذخیره کنید
اینجوری دیگه مشکلی پیش نمیاد

systam
یک شنبه 30 تیر 1392, 09:39 صبح
آخه کار شما اشتباهه
شما دارین مسیر عکس هارو تو بانک ذخیره میکنین شما باید خود عکس هارو به صورت بایت به بایت در بانک ذخیره کنید
اینجوری دیگه مشکلی پیش نمیاد
سلام
به نظر من این کار اصولی نیست
سرعت لود اطلاعات رو پایین میاره وقتی بانک سنگین بشه
من خودم برنامه رو با 2000 تا عکس تست کردم 56 ثانیه طول کشید تا لود کرد اطلاعات رو
اون 2000 تا عکس بود حجم عکس کم بود
بدون تعدادش زیاد تر بشه چی میشه دیگه

hamid_hr
یک شنبه 30 تیر 1392, 09:50 صبح
http://barnamenevis.org/showthread.php?400645-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-sql-server2008-%D8%A8%D8%A7-%D8%AE%D8%A7%D8%B5%DB%8C%D8%AA-FileStream&highlight=filestream

http://barnamenevis.org/showthread.php?401515-%D9%86%D8%AD%D9%88%D9%87-%D9%81%D8%B9%D8%A7%D9%84-%D8%B3%D8%A7%D8%B2%D9%8A-%D9%86%D9%88%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87%D9%8A-filestreem-%D9%88-%D9%83%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D9%8A%D9%86-%D9%86%D9%88%D8%B9-%D8%AF%D8%B1-C&highlight=filestream

shahryari
یک شنبه 30 تیر 1392, 11:31 صبح
سلام

ظرفیت هر کدوم حدوداً 3 مگ هست میتونی یه تابع بنویسی که حجم عکساتو کاهش بده و بعد در بانک ذخیره بکنی

بعنوان مثال:
Public Function ResizeAndSave(ByVal ImagePath As String, ByVal SavePath As String, ByVal FileType As String, ByVal xWidth As Int32, ByVal yHeight As Int32)
Dim bm As New Bitmap(ImagePath)
Dim x As Int32 = xWidth
Dim y As Int32 = yHeight
Dim width As Integer = Val(x)
Dim height As Integer = Val(y)
Dim thumb As New Bitmap(width, height)
Dim g As Graphics = Graphics.FromImage(thumb)

g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic

g.DrawImage(bm, New Rectangle(0, 0, width, height), New Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel)
g.Dispose()
Select Case Strings.LCase(FileType)
Case "bmp"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Bmp)
Case "emf"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Emf)
Case "exif"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Exif)
Case "gif"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Gif)
Case "ico"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Icon)
Case "jpeg"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Jpeg)
Case "png"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Png)
Case "tiff"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Tiff)
Case "wmf"
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Wmf)
End Select

bm.Dispose()
thumb.Dispose()

MsgBox(ImagePath & " converted to " & SavePath, MsgBoxStyle.Information, "Conversion Complete")
Return 0
End Function

erfan_urchin
سه شنبه 01 مرداد 1392, 15:16 عصر
سلام
به نظر من این کار اصولی نیست
سرعت لود اطلاعات رو پایین میاره وقتی بانک سنگین بشه
من خودم برنامه رو با 2000 تا عکس تست کردم 56 ثانیه طول کشید تا لود کرد اطلاعات رو
اون 2000 تا عکس بود حجم عکس کم بود
بدون تعدادش زیاد تر بشه چی میشه دیگه

آخه شما که داری مسیر عکس رو ذخیره میکنی فرض کن اون عکس مسیرش عوض شه یا اون عکس پاک بشه خب دیگه نمیتونه اون عکسو نمایش بده و Error میده
به نظر من بهترین راه همینه که عکسو به صورت بایت به بایت ذخیره کنید
که اگه خواستین همچین کاری کنید بگید تا کدشو براتون بزارم

systam
پنج شنبه 03 مرداد 1392, 09:43 صبح
سلام
ممنونم که پاسخ منو دادید از دو استاد بزرگوار
جناب شهریاری حجم عکس کم بشه کیفیت عکس کاهش پیدا نمیکنه ؟

erfan_urchin
جمعه 04 مرداد 1392, 02:18 صبح
سلام
ممنونم که پاسخ منو دادید از دو استاد بزرگوار
جناب شهریاری حجم عکس کم بشه کیفیت عکس کاهش پیدا نمیکنه ؟

نه زیاد کیفیتش پایین نمیاد

من کد آقای شهریاری رو به C# تبدیل کردم. دیدم سوالتونو تو بخش C# نوشتین ، گفتم شاید کد رو به C# بخواین
public object ResizeAndSave(string ImagePath, string SavePath, string FileType, Int32 xWidth, Int32 yHeight)
{
Bitmap bm = new Bitmap(ImagePath);
Int32 x = xWidth;
Int32 y = yHeight;
int width = Conversion.Val(x);
int height = Conversion.Val(y);
Bitmap thumb = new Bitmap(width, height);
Graphics g = Graphics.FromImage(thumb);

g.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic;

g.DrawImage(bm, new Rectangle(0, 0, width, height), new Rectangle(0, 0, bm.Width, bm.Height), GraphicsUnit.Pixel);
g.Dispose();
switch (Strings.LCase(FileType)) {
case "bmp":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Bmp);
break;
case "emf":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Emf);
break;
case "exif":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Exif);
break;
case "gif":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Gif);
break;
case "ico":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Icon);
break;
case "jpeg":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Jpeg);
break;
case "png":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Png);
break;
case "tiff":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Tiff);
break;
case "wmf":
thumb.Save(SavePath, System.Drawing.Imaging.ImageFormat.Wmf);
break;
}

bm.Dispose();
thumb.Dispose();

Interaction.MsgBox(ImagePath + " converted to " + SavePath, MsgBoxStyle.Information, "Conversion Complete");
return 0;
}