المشاركات : 1,561
المواضيع 264
الإنتساب : Sep 2013
السمعة :
29
الشكر: 653
تم شكره 1044 مرات في 408 مشاركات
02-06-14, 01:42 PM
السلام عليكم
الحصول علي صورة بمقاس معين وجودة معينة من داخل ايقونة
مثال مقاس 16X16 جودة 32bt
وجزاكم الله خيرا
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
ربما فهمت قصدك وربما لم افهم
هل تقصد الي في بالي ؟؟
اقصد مثل هالصورة يعني :
المشاركات : 1,561
المواضيع 264
الإنتساب : Sep 2013
السمعة :
29
الشكر: 653
تم شكره 1044 مرات في 408 مشاركات
لا طبعا المصابيح اكثر منها مفيش ههههههه
-----
قمت بجلب ايقونة ملف عن طريق
System.Drawing.Icon.ExtractAssociatedIcon
طيب شوف الموضوع ده هتفهم قصدي
الان وبعد جلب الايقونة اريد جلب صورة معينة منها لوضعها في ImageList وعرضها في ListView
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
إقتباس :الان وبعد جلب الايقونة اريد جلب صورة معينة منها لوضعها في ImageList وعرضها في ListView
بعد مافهمت .. ماهو كانت صورة المصباح داخل ايقونة
ولا انت تقصد تحويل الايقونة الى صورة ؟؟
المشاركات : 1,561
المواضيع 264
الإنتساب : Sep 2013
السمعة :
29
الشكر: 653
تم شكره 1044 مرات في 408 مشاركات
اخي محمد
الايقونة عبارة عن مجموعة من الصور باحجام وجودة مختلفة اريد جلب احدي الصور منها
المشاركات : 1,733
المواضيع 147
الإنتساب : Sep 2012
السمعة :
215
الشكر: 8484
تم شكره 12163 مرات في 1145 مشاركات
يعني تبي تحول ايقونة الى صورة (مقاس محدد + جودة محددة)
اذن ليش اللف والدوران .. لكن مو مشكلة خانك التعبير
لكن انا ارى ان المثال الي انت جبته كان ممتاز وين المشكلة ؟؟
المشاركات : 1,486
المواضيع 101
الإنتساب : Sep 2012
السمعة :
127
الشكر: 71
تم شكره 6155 مرات في 1035 مشاركات
هذا النوع من الصور غالبا بيكون من النوع ـjpeg و يكون فيها أكثر من Frame مثل الصورة المتحركة ..و بمعني أدق أكثر Jpeg من النوع هذا تكون بمثابة صورة من النوع Tiff أو multi_Page image
و لا ستخلاص الصور الموجودة في هذا النوع من الصور
اعتقد هذه الدالة سوف تفيدك ...و كل ما عليك هو أن تحدد مسار الصورة و الدالة ستقوم ب الباقي و تحفظ الصور ف نفس المسار و بنفس الاسم + رقم الصورة
كود :
Public Function TiffToJpeg(fileName As String) As String()
Using imageFile As Image = Image.FromFile(fileName)
Dim frameDimensions As New FrameDimension(imageFile.FrameDimensionsList(0))
' Gets the number of pages from the image (if multi-page image)
Dim frameNum As Integer = imageFile.GetFrameCount(frameDimensions)
Dim jpegPaths As String() = New String(frameNum) {}
Dim frame As Integer = 0
While frame < frameNum
' Selects one frame at a time and save as jpeg.
imageFile.SelectActiveFrame(frameDimensions, frame)
Using bmp As New Bitmap(imageFile)
jpegPaths(frame) = String.Format("{0}\{1}{2}.jpeg",
Path.GetDirectoryName(fileName),
Path.GetFileNameWithoutExtension(fileName), frame)
bmp.Save(jpegPaths(frame), ImageFormat.Jpeg)
End Using
frame -= 1
End While
Return jpegPaths
End Using
المشاركات : 1,561
المواضيع 264
الإنتساب : Sep 2013
السمعة :
29
الشكر: 653
تم شكره 1044 مرات في 408 مشاركات
جزاكم الله خيرا اخواني الشاكي لله واخي silverlight
اسف لعدم التعبير المضبوط كل يوم نتعلم
بالنسبة لي بحث كثيرا اكثر من ساعتين مما جعلني اضطر لكتابة السؤال
عندي الان متغير من نوع System.Drawing.Icon يحمل بداخله الايقونة
اريد استخراج صورة من احدي الصور الموجودة داخل الايقونة مثلا في حالتي الان 16X16 جودة 32bt
المثال السابق اخي محمد فعلا يفي بالغرض لاكني بحثن فيه كثيرا معرفتش اوصل للدالة المطلوبة
المشاركات : 1,561
المواضيع 264
الإنتساب : Sep 2013
السمعة :
29
الشكر: 653
تم شكره 1044 مرات في 408 مشاركات
اسف مثلا
تحول ايقونة الى صورة (مقاس محدد + جودة محددة)
المشاركات : 1,486
المواضيع 101
الإنتساب : Sep 2012
السمعة :
127
الشكر: 71
تم شكره 6155 مرات في 1035 مشاركات
استخدم الاكواد التالية و ان شاء الله لن تجد صعوبة في بناء ايقونة
كود :
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2D
Namespace RiverNile
Public NotInheritable Class BitmapToIcon
Private Sub New()
End Sub
Public Shared Function Format32bppArgbCopy(sourceBitmap As Bitmap) As Bitmap
Dim copyBitmap As New Bitmap(sourceBitmap.Width, sourceBitmap.Height, PixelFormat.Format32bppArgb)
Using graphicsObject As Graphics = Graphics.FromImage(copyBitmap)
graphicsObject.CompositingQuality = CompositingQuality.HighQuality
graphicsObject.InterpolationMode = InterpolationMode.HighQualityBicubic
graphicsObject.PixelOffsetMode = PixelOffsetMode.HighQuality
graphicsObject.SmoothingMode = SmoothingMode.HighQuality
graphicsObject.DrawImage(sourceBitmap, New Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height), New Rectangle(0, 0, sourceBitmap.Width, sourceBitmap.Height), GraphicsUnit.Pixel)
End Using
Return copyBitmap
End Function
Public Shared Function CopyToSquareCanvas(sourceBitmap As Bitmap, canvasBackground As Color) As Bitmap
Dim maxSide As Integer = If(sourceBitmap.Width > sourceBitmap.Height, sourceBitmap.Width, sourceBitmap.Height)
Dim bitmapResult As New Bitmap(maxSide, maxSide, PixelFormat.Format32bppArgb)
Using graphicsResult As Graphics = Graphics.FromImage(bitmapResult)
graphicsResult.Clear(canvasBackground)
Dim xOffset As Integer = (sourceBitmap.Width - maxSide) \ 2
Dim yOffset As Integer = (sourceBitmap.Height - maxSide) \ 2
graphicsResult.DrawImage(sourceBitmap, New Point(xOffset, xOffset))
End Using
Return bitmapResult
End Function
Public Shared Function CreateIcon(sourceBitmap As Bitmap, iconSize As IconSizeDimensions) As Icon
Dim squareCanvas As Bitmap = CopyToSquareCanvas(sourceBitmap, Color.Transparent)
squareCanvas = DirectCast(squareCanvas.GetThumbnailImage(CInt(iconSize), CInt(iconSize), Nothing, New IntPtr()), Bitmap)
Dim iconResult As Icon = Icon.FromHandle(squareCanvas.GetHicon())
Return iconResult
End Function
End Class
Public Enum IconSizeDimensions
IconSize16x16Pixels = 16
IconSize24x24Pixels = 24
IconSize32x32Pixels = 32
IconSize48x48Pixels = 48
IconSize64x64Pixels = 64
IconSize96x96Pixels = 96
IconSize128x128Pixels = 128
End Enum
End Namespace
|