Ресайз картинок - Visual Basic .NET

  1. Всем привет!!! Такая задачка: В указанной папке через фолдеропен всем имеющимся картинкам изменить разрешение. У Памирыча нашел код ресайза, картинки из папки добавляю в массив.vb.net1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  Dim ofd As New FolderBrowserDialog         If ofd.ShowDialog = DialogResult.OK Then             Dim p = ofd.SelectedPath             Dim Files() As String = IO.Directory.GetFiles(p & "", "*.jpg", IO.SearchOption.TopDirectoryOnly)             lb.Items.AddRange(Files)             For Each i In Files                 Dim pp As String = Files(i)                 Dim myImg1 As System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(pp), System.Drawing.Bitmap)                 x(i) = myImg1.Width                 y(i) = myImg1.Height                   Dim K As Double = myImg1.Width / myImg1.Height 'Соотношение сторон                 Dim myImg2 As New System.Drawing.Bitmap(myImg1, 640, 480 / K)                 myImg2.Save(p & "" & IO.Path.GetFileName(IO.Path.GetFileNameWithoutExtension(Files(i))) & "-.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) 'Сохраняем в формате JPG             Next         End IfСохранить надо в указанную папку или в текущую. К имени файла добавить напр. "-1" Он ругается на строчку Dim pp As String = Files(i) Dim myImg1 As System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(pp). (нельзя стринг к интегер привести) Подскажите что исправить, плиз. Спасибо!!!


textual

Код к задаче: «Ресайз картинок - Visual Basic .NET»

 Dim pp As String = Files(i).Name

СДЕЛАЙТЕ РЕПОСТ

7   голосов, оценка 4.000 из 5



Похожие ответы
  1. Код для перелистывания картинок вперёд и назад в вижуал бейсик,каждая картинка в отдельном пикчебоксе.помогите пожалуйста.

  1. Здравствуйте, форумчане! Обращаюсь от безысходности, т.к. не знаю уже что делать и как подойти к решению проблемы. Суть в следующем: У меня есть Form1 на которой размещен Picturebox и Timer1, выглядит код не лучшим образом... но вот так получилось:vb.net1 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 Imports Microsoft.DirectX.AudioVideoPlayback Imports System.IO   Public Class Form1     Dim файлы() As String     Dim WithEvents video As Video     Dim g As Integer = 0       Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         файлы = IO.Directory.GetFiles("C:\Pictures_and_video")     End Sub       Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick, video.Ending         For i As Int32 = 0 To файлы.Length             If g <> файлы.Length Then                If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then                     video = New Video(файлы(i).ToString)                     video.Owner = PictureBox1                     video.Play()                 ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then                     PictureBox1.Image = Image.FromFile(файлы(g))                     PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage                 End If             Else                 g = 0             End If         Next         g += 1     End Sub End ClassВ папке "C:\Pictures_and_video" лежат файлы 2ух типов - jpg и wmv. И вот в чем затык, не могу сделать нормальное условие, при котором: 1. Если в переменной "файлы" находится путь к "Видео файлу" - проиграть видео, дождаться окончания воспроизведения - показать сл. файл (что попадется видео или картинка). 2. Если попалась картинка - показать её (timer стоит на 5000) - соответственно через 5 сек должен идти сл. файл (опять же что попадется видео или картинка). Что я делаю не так? Как заставить ожидать окончания видео и показать сл. файл?Добавлено через 1 час 13 минут Конечно же по закону подлости, стоило мне написать на форуме, как у меня все получилось... Сделал так:vb.net1 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 Imports Microsoft.DirectX.AudioVideoPlayback Imports System.IO   Public Class Form1     Dim файлы() As String     Dim WithEvents video As Microsoft.DirectX.AudioVideoPlayback.Video     Dim g As Integer = 0     Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load         файлы = IO.Directory.GetFiles("C:\Pictures_and_video")     End Sub       Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick        If g <> файлы.Length Then             If FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".wmv" Then                 video = New Video(файлы(g).ToString)                 video.Owner = PictureBox1                 video.Play()                 Timer1.Enabled = False 'Выключаем таймер для ожидания окончания видео             ElseIf FileIO.FileSystem.GetFileInfo(файлы(g).ToString).Extension = ".jpg" Then                 PictureBox1.Image = Image.FromFile(файлы(g).ToString)                 PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage             End If         Else             g = 0         End If         g += 1     End Sub     Public Sub video_Ending(sender As Object, e As EventArgs) Handles video.Ending         Timer1.Enabled = True 'Включаем таймер после завершения показа видео     End Sub End ClassУсловие работает правильно, если видит видео - выключает таймер - играет полностью видео, когда видео выключается - включается таймер и показывается сл. файл. НО.... почему-то если я попадаю на картинку после видео (ДО видео все норм), то картинка не показывается... Может нужно как-то перед показом картинок обновить Picturebox после video.owner = Picturebox1?Добавлено через 48 минут Тааак... и с этим справился... добавил 2ой Picturebox и в нем показываю картинки, естественно когда показываю картинки - Picturebox1.visible = false, а 2ой visible = true.... Последний вопрос ^_^ Как убрать звук у видео?vb.net1 video.Audio.Volume = 0Не выходит((Добавлено через 7 минут И это нашел... оказывается нужно посильнее снижать звук:vb.net1 video.Audio.Volume = -10000Надеюсь мои изыскания кому-нибудь помогут! Тему можно закрывать P.S. Надо по чаще писать на форум, решения так и сыплются ^_^Добавлено через 15 минут Нет... все равно что-то не так... периодически после проигрывания видео не показываются картинки, а периодически все нормально.... мистика какая-то... Помогите

  1. Пытаюсь написать код, чтобы картинка в picturebox переключалась на следующую при возникновении указанного условия.vb.net1 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 32 33 34 35 36 37 38 39 40 Public Class Form2     Dim pravilno As Long = 0     Dim neprav As Long = 0     Dim Vibor As Long     Dim ostrov As Bitmap = Image.FromFile(Application.StartupPath & "\image\ostrov.jpg")     Dim dub As Bitmap = Image.FromFile(Application.StartupPath & "\image\dub.jpg")     Dim sunduk As Bitmap = Image.FromFile(Application.StartupPath & "\image\sunduk.jpg")     Dim zayc As Bitmap = Image.FromFile(Application.StartupPath & "\image\zayc.jpg")     Dim duck As Bitmap = Image.FromFile(Application.StartupPath & "\image\duck.jpg")     Dim e As Bitmap = Image.FromFile(Application.StartupPath & "\image\e.jpg")     Dim igla As Bitmap = Image.FromFile(Application.StartupPath & "\image\igla.jpg")     Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load         PictureBox1.BackgroundImage = My.Resources.Рисунок2         PictureBox2.BackgroundImage = ostrov         PictureBox3.BackgroundImage = ostrov         PictureBox4.BackgroundImage = ostrov         Label1.Text = "остров"     End Sub       Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles PictureBox2.Click, PictureBox3.Click, PictureBox4.Click         Randomize()         Vibor = Fix(2 * Rnd())         If Vibor = 0 Then neprav = neprav + 1         If Vibor = 1 Then pravilno = pravilno + 1         If Label1.Text = "остров" Then             PictureBox1.BackgroundImage = My.Resources.Рисунок3             PictureBox2.BackgroundImage = dub             PictureBox3.BackgroundImage = dub             PictureBox4.BackgroundImage = dub             Label1.Text = "дуб"         End If         If Label1.Text = "дуб" Then             PictureBox1.BackgroundImage = My.Resources.Рисунок4             PictureBox2.BackgroundImage = sunduk             PictureBox3.BackgroundImage = sunduk             PictureBox4.BackgroundImage = sunduk             Label1.Text = "сундук"         End If     End Sub End ClassНо почему-то все перелистывается на последнюю картинку из указанных. Что я делаю не так?

  1. Всем привет! Подскажите пожалуйста, как реализовать добавление картинок с компьютера (указанной папки) в элемент ImageList программным путем? Нашел вот такой кусок кода но он не работает, как я понял он просто под старую версию...vb.net1 2 3 4 5 Dim img As ListImage   Set img = ImageList1.ListImages.Add(1, "SpellCheck", LoadPicture("D:\t\2\SPELL.BMP")) Set img = ImageList1.ListImages.Add(2, "Open", LoadPicture("D:\t\2\OPEN.BMP")) Set img = ImageList1.ListImages.Add(3, "About", LoadPicture("D:\t\2\W95MBX04.ICO"))

  1. Как вывести в переменную количество картинок в Imagelist?

  1. При помощи HScrollBar можно самостоятельно перелистывать с разной скоростью 50 изображений, от 0 до 49 в формате .png, vb.net1 2 3    Private Sub HScrollBar_Main_ValueChanged(sender As Object, e As EventArgs) Handles HScrollBar_Main.ValueChanged PictureBox_Main.Image = Image.FromFile("Auto\Light_off\" & HScrollBar_Main.Value & ".png") End Sub но хотелось бы сделать горизонтальные жесты. Как реализовать, чтобы при нажатой ЛКМ и перемещении курсора по горизонтали действие было аналогично HScrollbar?

  1. скажите пожалуйста как загружать картинки в базу дааных но без ссылки в vb.net 10 кто знает пусть откликнется плииииииз

  1. Всем добрый день. Есть собственно программка для обрезания картинок, не получается реализовать удаления оригинала картинки.vb.net1 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 b = IO.Path.GetFileNameWithoutExtension(Label1.Text)                 If RadioButton1.Checked = True Then a = 200         If RadioButton2.Checked = True Then a = 400         If RadioButton3.Checked = True Then a = 600         If RadioButton4.Checked = True Then a = 800         If RadioButton5.Checked = True Then a = 1000         If RadioButton6.Checked = True Then a = 1200                 Dim myImg1 As System.Drawing.Bitmap = CType(System.Drawing.Image.FromFile(Label1.Text), System.Drawing.Bitmap)                 Dim K As Double = myImg1.Width / myImg1.Height         Dim myImg2 As New System.Drawing.Bitmap(myImg1, a, a / K)           myImg2.Save(TextBox1.Text & b & "_" & a & ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg)         'MsgBox("Сохранено " & (TextBox1.Text & "\" & b & "_" & a & ".jpg"))                 PictureBox1.Image = Nothing         myImg1 = Nothing         myImg2 = Nothing           If CheckBox1.Checked = True Then             IO.File.Delete(Label1.Text) 'хочу чтобы при условии удаляло оригинал!         End If         e1:Как освободить файл для удаления...

  1. Суть вот в чем: Есть созданная форма под название КАТАЛОГ. Мне нужно на этой форме разместить от 1...n количества картинок, потом создать две кнопки: Следующая и Предыдущая. Как мне это создать чтобы было все понятно.