Показаны сообщения с ярлыком c#. Показать все сообщения
Показаны сообщения с ярлыком c#. Показать все сообщения

среда, 12 июня 2013 г.

создание миниатюр

Итак, в работе с версткой иногда встречается работа с галереями изображений, и все бы ничего, но большинство скриптов вроде ligthbox, shadowbox и других, требуют миниатюр картинок, при клике на который и выводят полное изображение.

Хорошо, когда картинок 5-10, а когда 100! Есть полезные бесплатные программы для создания миниатюр вроде Easy Thumbnail, удобно раз и готово, но я решил сделать свою гномулиту.

Зачем? Просто практика программирования, (ибо как самурай тренируюсь каждый день) да и хотелось посмотреть как обрабатываются изображения.
В общем, все получилось, изображения конвертируются и уменьшаются, а также выводятся в отдельную папку.

Выкладываю улучшенную версию для народа на WPF (вес 30 кб, требует наличия .Net Framework, есть уже у каждого). Уже можно скачать.

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

Планирую добавить html - файл с таблицей, что бы после создания миниатюр создавал и страницу (или страницы) с готовой таблицей и ссылкой, которую позже легко скопировать на вебсайт.

четверг, 23 мая 2013 г.

ImageNameChanger 0.1.1

Сегодня хороший день.
Завершил, точнее доукрасил программу ImageNameChanger для смены регистра у изображений с помощью Expression Blend.
Все таки WPF и XAML это сила!. Программы получаются приятными глазу. Хватит писать консольные приложения, которые быстры как олени, но часто скучны как дождливые осенние дни.

Изменил версию с 0.1.0 на 0.1.1 после того как поправил функцию которая меняла названия файлов в нижний регистр.
До этого она сперва изменяла название файла изображения, а затем искала в html файлах, тем самым изменяя регистр даже у тех картинок, на которые не было ссылки в html файлах. Теперь же, если те картинки, на которых нет ссылки в html файлах, остаются не тронутыми.

среда, 22 мая 2013 г.

Отправил пост о необходимом велосипеде на хабр

Сегодня 20 мая, отправил пост о "полезном велосипеде" на хабрахабр.
Хочу получить инвайт, и наконец-то иметь возможность писать комменты к статьям. Очень надеюсь, и жду...
Ждать сколько, не знаю, сказали ждать письма, так что скрестим пальцы.
Это мой первый пост, для строгого хабражюри, и для меня очень важно, услышать ответы - прочитать комменты, узнать где прав, где неправ и как сделать лучше.

Пост об окне для выбора каталога, OpenFile Dialog, реализованном на WPF, который почему-то отсутствует в Visual Studio. Тем самым если Вам нужно реализовать в приложении выбор папки для пользователя, приходится использовать Windows.Forms, что нарушает единый дизайн всего приложения.

Если интересно, читайте, и комментируйте.

Версия для скачивания, сыровата. В ней я реализовал костяк, остальные недоделки допилил и планирую через пару дней опубликовать новый шаблон.

Прошла пара дней, и вот реализация шаблона выбора папки для wpf приложения, которую я обещал выложить в сеть. В ней учтены различные мелочи, вроде ошибки при запуске обработки без выбора папки итп.

понедельник, 20 мая 2013 г.

Как найти файлы в директории с заданными расширениями

Понадобилось мне обработать все изображения в папке, а так как расширений у изображений много, это и gif, jpg, bmp и тп, то простым Directory.GetFiles(path, *.jpg) тут не обойтись. Поэтому нашел простое решение. Можно было б использовать лямбда выражение и сделать код короче, но так нагляднее.

Способ использует цикл в цикле, и проходит по каждому найденному файлу, в директории.

string SelectFolder = "C:/Work/Folder"; // Путь к каталогу
string[] typeOfFiles = {"*.jpg", "*.jpeg", "*.gif", "*.png", "*.bmp", "*.flw" }; 
   foreach (string typeOfFile in typeOfFiles)
   {
       string[] filesForWork = Directory.GetFileSystemEntries(SelectFolder, typeOfFile);
       // Показываем с какими файлами работаем
       foreach (string filesFinded in filesForWork)
       {
        // Вывести только названия файлов без пути
           FileInfo imageName = new FileInfo(filesFinded);
    // вывести названия файлов в листбокс
           listBox1.Items.Add(imageName.Name);
       }
}


Это еще один способ код нашел на cyberforum.ru/:
string[] extensions = new[] { ".jpg", ".tiff", ".bmp" };
 
FileInfo[] files =
    dinfo.GetFiles()
         .Where(f => extensions.Contains(f.Extension.ToLower()))
         .ToArray();

пятница, 17 мая 2013 г.

C# Чтение в строку из файла и перевод строки.

Обычно, когда мы читаем текстовый файл в строку, с помощью StreamReader, то теряем переводы строки, то есть вместо
Первая строка
Вторая строка
Получаем:
"Первая строкаВторая строка".


И при записи этих строк в файл, затем ищем способы как снова разделить строки...

Что бы этого не происходило, при чтении файла в строку, читаем построчно и добавляем в конец читаемой строки символы "/r/n" (перевода строк для Windows)и тогда все будет в порядке.

// Открыть файл и прочитать в строку
 string someText = "";
using (StreamReader streamReader = new StreamReader(fileWithText,
System.Text.Encoding.Default))
{
       while (!streamReader.EndOfStream)
       {

            // Заносить в строку, построчно - Учитывать Перевод строки
           someText += streamReader.ReadLine() + "\r\n"; 
       }
       streamReader.Close();
}

понедельник, 17 сентября 2012 г.

Применение foreach для вывода данных из DataTable в wpf

Применение foreach для вывода данных из DataTable в wpf
var dataTable = new DataTable();
dataTable.Rows[rowIndex].ItemArray[index]//доступ для конкретной строки
dataTable.Rows[rowIndex][/*columnIndex*/|/*columnName*/|/*column*/]
foreach (DataRow row in dataTable.Rows)//итератор для строк
{
var columnValue = row.ItemArray[index];//по индексу
var columnValue = row[/*columnIndex*/ | /*columnName*/ | /*column*/];//по индексу или имени колонки или объекту колонки
}
Уфф, наконец  я понял как записывать дату в базу данных sql.
(в поле datetime)
Вот код
DateTime today_insert = new DateTime();
date_example = DateTime.Now;
  string date_today = date_example.ToString("mm\\/dd\\/yyyy");

Выдаст: 09/17/2012
или
string date_today = date_example.ToString("yyyy-MM-dd HH:mm tt");
Выдаст:  09/17/2012 12:03
(без секунд)

суббота, 15 сентября 2012 г.

С# RitchTextBox WPF

При попытке вывести данные (текст) в Ritchtextbox контрол, столкнулся с отсутствием ritchtextbox.text в WPF, поэтому путем поисков, добыты три разных способа это сделать:
1. Испытан, и показался мне подходящим

// Создать FlowDocument для вывода в RichTextBox.
FlowDocument myFlowDoc = new FlowDocument();

  // Добавить данные в FlowDocument.
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1")));
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2")));
myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3")));
RichTextBox myRichTextBox = new RichTextBox();

  // Добавить данные в созданный RichTextBox.
myRichTextBox.Document = myFlowDoc;

2. Путем создания класса
string GetString(RichTextBox rtb)
{
var textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
return textRange.Text;
}

найдено тут: http://stackoverflow.com/questions/957441/richtextbox-wpf-does-not-have-string-property-text