Дослідження особливостей конвертації файлів графічних форматів з використанням технології dotNet

Аналіз особливостей конвертації файлів графічних форматів з використанням технології dotNet і створення системи, яка дозволяє наочно проілюструвати принципи програмування з використанням особливостей цієї платформи. Етапи створення windows-додатків.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык украинский
Дата добавления 22.10.2012
Размер файла 3,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Tools -- команди додаткових інструментів і настройки Visual Studio .NET.

Window -- управління розташуванням вікон.

Help -- довідка.

3.2 Форми

Всякий раз, коли ми працюємо з якою-небудь програмою, ми бачимо на екрані прямокутне вікно. У цьому вікні і розташовується вся інформація, яка нам потрібна. Форми можуть мати стандартний вигляд, такий, наприклад, як у програми Microsoft Word. Отже, форма -- це екранний об'єкт, що забезпечує функціональність програми.

Запускаємо Visual Studio .NET, вибираємо File/New/Project -- з'являється діалогове вікно (Ctrl+Shift+N приводить до того ж результату), в якому вибираємо Visual C# Project і Windows Application.

Рис. 3.4 Створення нового проекту

У полі Name задаємо ім'я проекту -- FirstForm і зберігаємо його в теку, визначувану полем Location. Одержану теку ви зможете згодом перемістити на інший комп'ютер і продовжити роботу -- в ній знаходитимуться всі створювані нами файли цього проекту. На екрані з'явилася порожня Windows-форма.

Після того, як ми створили новий проект, можна побачити основні частини середовища розробки (рис. 3.5).

Рис. 3.5 Головне вікно програми в режимі розробки

3.3 Вікно «Провідник проекту»

Вікно Solution Explorer (провідник проекту, View --> Solution Explorer, або поєднання клавіш Ctrl+Alt +L) містить компоненти, що входять до складу проекту. Пункти контекстного меню цього вікна (що викликається натисненням правої кнопки миші) дозволяють змінювати вміст проекту, а також додавати нові компоненти.

Рис. 3.6 Контекстне меню вікна Solution Explorer

При створенні нового проекту Solution Explorer містить компоненти, створені шаблоном .

Рис. 3.7 Компоненти, що входять до складу нового додатку

Каталог References містить посилання на класи, використовувані в проекті за умовчанням. Подвійне клацання миші на підкаталогах References запускає вікно Object Browser (провідник об'єктів, View --> Object Browser, або поєднання клавіш Ctrl+Alt+J). Вікно Object Browser, у свою чергу, є вичерпним засобом отримання інформації про властивості об'єктів. Так абстрактний клас brush успадковується від класу System.MarshalByRefObject і містить методи Clone, Dispose(bool), Dispose і Finalize.

Рис. 3.8 Вікно Object Browser

Можна одержувати короткий опис будь-якого методу, класу або властивості, просто клацнувши на ньому, -- на інформаційній панелі негайно відобразиться коротка довідка. Для досвідченого розробника Object Browser -- незамінний помічник в роботі, набагато зручніший, ніж довідка.

Файл App.ico містить зображення іконки, яке на формі розташоване у верхньому лівому кутку. Файл AssemblyInfo.cs містить інформацію про наш додаток. При створенні дистрибутива в цей файл поміщається інформація програми, використовувана в технічних цілях, а також цифровий ключ.

3.4 Вікно Class View

Вікно Class View -- (огляд класів, View --> Class View, або поєднання клавіш Ctrl+Shift+C), дозволяє переміщатися в коді по вибраному об'єкту; містить методи, класи, дані всього лістингу проекту. Для переходу, наприклад, в метод Main клацаємо на відповідній назві у вікні Class View.

Рис. 3.9 Вікно Class View. Дозволяє швидко переміщатися за кодом всього проекту

3.5 Вікно Properties Window

Вікно властивостей Properties -- основний інструмент настройки форми і її компонентів. Вміст цього вікна є всім списком властивостей вибраного в даний момент компоненту або форми. Викликається це вікно декількома способами -- в меню View вибираємо пункт Properties Window (або використовуємо клавішу F4), на вибраному об'єкті клацаємо правою кнопкою миші і в контекстному меню пункт Properties вибираємо об'єкт і натискаємо F4 або просто вибираємо об'єкт і переходимо у вікно Properties. Коли ми тільки створили проект, у вікні Properties відображаються властивості самої форми.

конвертація файл графічний windows додаток

Рис. 3.10 Вікно властивостей Properties

3.6 Вікно панелі інструментів

Вікно Toolbox (панель інструментів, View --> Toolbox, або поєднання клавіш Ctrl+Alt+X) містить компоненти Windows-форм, звані також елементами управління, які розміщуються на формі. Воно складається з декількох закладок: My User Controls, Components, Data, Windows Forms і General:

Рис. 3.11 Вікно Toolbox

Закладкою, що найбільш часто вживається, є Windows Forms. Для розміщення потрібного елементу управління досить просто клацнути на ньому у вікні Toolbox або, схопивши, перетягнути його на форму. Перемикання виду значків дозволяє розмістити їх без смуги прокрутки.

Рис. 3.12 Представлення елементів у вигляді списку

Рис. 3.13 Представлення елементів у вигляді значків

У вікні Toolbox доступно відображення всіх закладок.

Рис. 3.14 Встановлюємо галочку "Показати всі закладки"

Рис. 3.15 Повний список закладок

Закладка My User Controls дозволяє зберігати власні списки елементів управління:

Рис. 3.16 Додавання закладки

Рис. 3.17 Власна закладка "Моя закладка для First Form"

Рис. 3.18 Відновлення значень за умовчанням

Створені таким чином закладки можна перейменувати або видалити, вибравши в контекстному меню пункти Rename Tab і Delete Tab відповідно.

Якщо в результаті всіх експериментів ми побачимо, що поточний вид вікна Toolbox сильно відрізняється від первинного, для відновлення значень за умовчанням виберіть в контекстному меню будь-якої закладки пункт Add/Remove Items. . У вікні, що з'явилося, натисніть на кнопку Reset. З'являється вікно попередження -- "Настройки Toolbox будуть відновлені. Всі призначені для користувача закладки будуть видалені. Продовжувати?" Погодившись з попередженням, ви побачите вид Toolbox за умовчанням.

Всі закладки, окрім Clipboard Ring і General, містять компоненти, які можна перетягнути на форму. Закладка Clipboard Ring є аналогом буфера обміну в Microsoft Office 2003, буфера, що відображає вміст, за декілька операцій копіювання або вирізування. Для вставки фрагмента достатньо двічі клацнути по ньому.

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

Рис. 3.19 Ергономічне розташування вікон, що максимально звільняє робочу область

3.7 Режими дизайну і коду

При створенні нового проекту запускається режим дизайну -- форма є основою для розташування елементів управління. Для роботи з програмою слід перейти в режим коду. Це можна зробити декільком способами: клацнути правою кнопкою миші в будь-якій частині форми і в меню, що з'явилося, вибрати View Code, у вікні Solution Explorer зробити те ж саме на компоненті Form 1.cs або просто двічі клацнути на формі -- при цьому згенерується метод Form1_Load. Після хоч би одноразового переходу в режим коду в цьому проекті з'явиться вкладка Form1.cs*, натискаючи на яку, теж можна переходити в режим коду. Для переходу в режим коду також можна використовувати клавішу F7, а для повернення в режим дизайну -- поєднання Shift+F7.

Перемкнемося в режим коду і розглянемо деякі блоки.

Даний блок визначає, які простори імен використовуються в цьому проекті:

using System;

using System.Drawing;

using System.Collections;

using System.ComponentModel;

using System.Windows.Forms;

using System.Data;

Для проглядання інформації про вміст кожного з цих просторів можна скористатися вікном Object Browser.

Далі визначається власний простір імен, ім'я якого співпадає з назвою проекту:

namespace FirstForm

При необхідності цю назву можна міняти.

Клас форми Form1, успадкований від System.Windows.Forms.Form, містить в собі майже весь код:

public class Form1 : System.Windows.Forms.Form

{

... }

Усередині цього класу знаходиться конструктор форми:

public Form1()

{

//

// Required for Windows Form Designer support

//

InitializeComponent();

//

// TODO: Add any constructor code after InitializeComponent call

//

}

Подія Initiliaze відбувається у момент запуску додатку; код, що додається після InitializeComponent, може змінювати вміст форми або елементи управління у момент запуску.

Область Windows Form Designer generated code містить код графічного інтерфейсу елементів управління і форми, що автоматично генерується середовищем. Порожня форма містить опис розмірів і заголовка. Клацнемо на знак (+) для перегляду це області:

#region Windows Form Designer generated code

/// <summary>

/// Required method for Designer support -- do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InitializeComponent()

{

this.components = new System.ComponentModel.Container();

this.Size = new System.Drawing.Size(300,300); // розмір форми в пікселях

this.Text = "Form1";// заголовок форми.

}

#endregion

Можна міняти значення параметрів, що створюються середовищем, і тоді зміни негайно відіб'ються на графічному інтерфейсі. Концепція області Windows Form Designer generated code схожа з концепцією WYSIWYG 1) редакторів HTML-коду, де можна розміщувати компоненти перетяганням, а середовище само генерує HTML-код.

Метод Main реалізує головну точку входу в програму -- тобто місце, звідки починається виконання написаного нами коду:

static void Main()

{

Application.Run(new Form1());

}

При відладці великих програм зручно використовувати нумерацію рядків, яку можна включити в пункті меню Tools/Options./Text Editor/C# -- на формі Display -- перемикач Line Numbers.

Рис. 3.20 Відображення нумерації рядків коду

При довгій роботі над кодом контрастні чорні букви на білому фоні викликають втому, тому бажано як фоновий колір встановити інший -- наприклад, сірий. Це можна зробити в Options на вкладці Environments/Font and Colors.

Рис. 3.21 Вкладка Environments/Font and Colors. Тут же можна змінити шрифт коду -- наприклад, встановити Times New Roman

В результаті режим коду приймає наступний вигляд:

Рис. 3.22 Ергономічний вид режиму коду

3.8 Властивості проекту

Розглянемо властивості проекту. У вікні Solution Explorer виділяємо назву проекту -- FirstForm, клацаємо правою кнопкою миші і вибираємо в меню пункт Properties. У вікні, що з'явилося, містяться всі властивості поточного проекту.

Рис. 3.23 Вікно Common Properties / General

У вікні властивостей міститься досить багато параметрів. Розглянемо деякі, найбільш вживані.

Вкладка Common Properties / General включає наступні властивості:

Assembly Name -- назва збірки.

Output Type -- тип компільованого додатку. За умовчанням для Windows-додатків стоїть Windows Application.

Default Namespace -- назва простору імен в коді. За умовчанням співпадає з ім'ям проекту.

Startup Object -- назва класу, що містить точку входу в програму - метод Main.

Application Icon -- шлях до файлу з іконкою додатку.

Project File -- ім'я файлу з інформацією про проект. Знаходиться усередині каталогу з проектом;

Project Folder -- шлях до файлу з проектом.

Output File -- назва файлу, що створюється при компіляції, -- вихідного файлу. Співпадає з ім'ям проекту.

На вкладці Configuration Properties / Build розглянемо деякі властивості.

Рис. 3.24 Вікно Configuration Properties / Build

Optimize Code -- оптимізація програми, значення цієї властивості true може значно збільшити продуктивність додатку.

Allow Unsafe Code Blocks -- вирішити використання ключового слова unsafe в коді проекту.

Warning Level -- рівень попереджень, що відображаються при компіляції програми.

Treat Warnings As Errors -- сприймати всі попередження як помилки. Якщо оголосити змінну в коді, але ніде не використовувати її, при значенні цієї властивості False додаток скомпілюється, при значенні True -- ні.

Output Path -- шлях, де формується вихідний файл. Тека bin знаходиться усередині теки проекту.

Generate Debugging Information -- виводити інформацію при відладці. Ця властивість повинна бути включена: саме ці повідомлення допомагають виправляти код.

3.9 Компіляція програми

Для перевірки програми використовуються два способи відладки. Перший спосіб -- Build Solution, який перевіряє код і компілює програму, не запускаючи її. Це дуже зручно, коли ви працюєте над окремим модулем великої розробки, і немає можливості перевіряти весь продукт в цілому. Для запуску цього способу вибираємо в головному меню пункт Build --> Build Solution (або поєднання клавіш Ctrl+Shift+B).

Рис. 3.25 Пункт головного меню Build

При цьому з'являється вікно Output, в якому виводиться інформація про всі стадії компіляції.

Рис. 3.26 Вікно Output, додаток не містить помилок

Якщо в коді є помилки, вікно Output виведе повідомлення про помилки, потім з'явиться їх список, причому для відладки достатньо двічі клацнути на відповідній помилці для переходу до потрібної ділянки коду:

Рис. 3.27 Вікно Output, в коді не вистачає фігурної дужки

Інший спосіб компіляції програми -- Debug, при якому перевіряється код, компілюється програма і формується призначений для користувача інтерфейс.

Рис. 3.28 Пункт головного меню Debug

Для запуску цього способу натискаємо клавішу F5. На екрані знову з'являється вікно Output, що інформує нас про хід компіляції. Якщо додаток не містить помилок, то на екрані з'явиться готова форма:

Рис. 3.29 Додаток запущено

При запуску додатку в каталозі bin\Debug усередині каталогку проекту виникає файл FirstForm.exe і файли, необхідні для відладки. Файл FirstForm.exe і є готовий додаток. Готовий додаток для розповсюдження необхідно скомпілювати в режимі Release -- тоді з'явиться каталог bin\Release, яка міститиме тільки FirstForm.exe. Ми можемо просто скопіювати його на інший комп'ютер, і якщо там є .NET Framework, все працюватиме.

У меню Debug також розташовані всі засоби для покрокової відладки коду, які ми вже зустрічали при роботі з консольними додатками.

Яка різниця між компіляціями Build і Debug? Припустимо, що ми розробляємо додаток, який підключатиметься до бази даних на видаленому комп'ютері, недоступному у момент розробки. Додаток одержуватиме дані відразу ж при запуску. Для відладки коду програми зручніше використовувати режим Build, оскільки відладка в режимі Debug супроводжуватиметься повідомленнями про помилки, що виникають із-за неможливості підключення до іншого комп'ютера. Саме підключення також займатиме якийсь час.

Якщо ж ми розробляємо локальний додаток, режим відладки Debug є зручнішим. Далі, коли ми запускатимемо додатки, матися на увазі буде саме цей режим.

4. ЕКСПЕРИМЕНТАЛЬНЕ ДОСЛІДЖЕННЯ ТА ПРОГРАМНА РЕАЛІЗАЦІЯ

4.1 Конвертація графічних форматів в Delphi

За допомогою Delphi можна конвертувати графічні формати один в інший. Для роботи із зображеннями існує декілька зумовлених класів. Розглянемо деякі варіанти конвертації.

4.1.1 Конвертація BMP в EMF

Наступна процедура конвертує bmp-файл в emf-файл і розташовує його в тій же директорії, що і початковий файл.

function bmp2emf( const SourceFileName: TFileName): Boolean;

var Metafile: TMetafile; MetaCanvas: TMetafileCanvas; Bitmap: TBitmap;

begin

Metafile := TMetaFile.Create;

try

Bitmap := TBitmap.Create;

try

Bitmap.LoadFromFile(SourceFileName);

Metafile.Height := Bitmap.Height;

Metafile.Width := Bitmap.Width;

MetaCanvas := TMetafileCanvas.Create(Metafile, 0);

try

MetaCanvas.Draw(0, 0, Bitmap);

finally

MetaCanvas.Free;

end;

finally

Bitmap.Free;

end;

Metafile.SaveToFile(ChangeFileExt(SourceFileName '.emf'));

finally

Metafile.Free;

end;

end;

4.1.2 Конвертація BMP в JPG

Дана процедура виконує таку конвертацію:

procedure TfrmMain.ConvertBMP2JPEG;

var

jpgImg: TJPEGImage;

begin

chrtOutputSingle.CopyToClipboardBitmap;

Image1.Picture.Bitmap.LoadFromClipboardFormat(cf_BitMap,ClipBoard.GetAsHandle(cf_Bitmap), 0);

jpgImg := TJPEGImage.Create;

jpgImg.Assign(Image1.Picture.Bitmap);

jpgImg.SaveToFile('TChartExample.jpg');

end;

У Uses необхідно додати модулі Jpeg і Clipbrd. У даному прикладі chrtOutputSingle - це об'єкт TChart (сторінка Additional). Перед викликом функції в буфері обміну повинен знаходитися об'єкт типу TBitmap.

4.1.3 Конвертація BMP в WMF

Дана конвертація також не складає труднощів:

procedure ConvertBMP2WMF (const BMPFileName, WMFFileName: TFileName);

var

MetaFile : TMetafile;

Bitmap : TBitmap;

begin

Metafile := TMetaFile.Create;

Bitmap := TBitmap.Create;

try

Bitmap.LoadFromFile(BMPFileName);

with MetaFile do

begin

Height := Bitmap.Height;

Width := Bitmap.Width;

Canvas.Draw( 0, 0, Bitmap);

SaveToFile(WMFFileName);

end;

finally

Bitmap.Free;

MetaFile.Free;

end;

end;

Приклад використання: ConvertBMP2WMF( 'c:\mypic.bmp', 'c:\mypic.wmf').

4.1.4 Зворотна конвертація: WMF в BMP

Зворотна конвертація мало чим відрізняється від попереднього:

procedure ConvertWMF2BMP (const WMFFileName, BMPFileName: TFileName);

var

MetaFile : TMetafile;

Bitmap : TBitmap;

begin

Metafile := TMetaFile.Create;

Bitmap := TBitmap.Create;

try

MetaFile.LoadFromFile(WMFFileName);

with Bitmap do

begin

Height := Metafile.Height;

Width := Metafile.Width;

Canvas.Draw( 0, 0, MetaFile);

SaveToFile(BMPFileName);

end;

finally

Bitmap.Free;

MetaFile.Free;

end;

end;

Використання: ConvertWMF2BMP('c:\mypic.wmf', 'c:\mypic.bmp').

4.1.5 Конвертація BMP в DIB

Якщо файл зберігається у форматі BMP і його потрібно перетворити у формат DIP з помомощью Delphi і відобразити, то необхідно використовувати функції GetDIBSizes і GetDIB з модуля GRAPHICS.PAS. Нижче приведені дві процедури, одна з яких призначена для створення DIB з TBitmap, а друга для його звільнення:

{ Перетворення TBitmap в DIB }

procedure BitmapToDIB(Bitmap: TBitmap;

var BitmapInfo: PBitmapInfo;

var InfoSize: integer;

var Bits: pointer;

var BitsSize: longint);

begin

BitmapInfo := nil ;

InfoSize := 0;

Bits := nil;

BitsSize := 0;

if not Bitmap.Empty then

try

GetDIBSizes(Bitmap.Handle, InfoSize, BitsSize);

GetMem(BitmapInfo, InfoSize);

Bits := GlobalAllocPtr(GMEM_MOVEABLE, BitsSize);

if Bits = nil then

raise

EOutOfMemory.Create( 'Не вистачає пам'яті для пікселів зображення' );

if not GetDIB(Bitmap.Handle, Bitmap.Palette, BitmapInfo^, Bits^) then

raise Exception.Create( 'Не можу створити DIB' );

except

if BitmapInfo <> nil then

FreeMem(BitmapInfo, InfoSize);

if Bits <> nil then

GlobalFreePtr(Bits);

BitmapInfo := nil;

Bits := nil;

raise ;

end;

end;

{ використовуемо FreeDIB для звільнення інформації про зображення і бітових покажчиків }

procedure FreeDIB(BitmapInfo: PBitmapInfo;

InfoSize: integer;

Bits: pointer;

BitsSize: longint);

begin

if BitmapInfo <> nil then

FreeMem(BitmapInfo, InfoSize);

if Bits <> nil then

GlobalFreePtr(Bits);

end;

Створюємо форму з TImage Image1 і завантажуємо в нього 256-кольорове зображення, потім поряд розміщуємо TPaintBox. Додаємо наступні строчки до private-оголошень нашої форми:

{ Private declarations }

BitmapInfo : PBitmapInfo;

InfoSize : integer;

Bits : pointer;

BitsSize : longint;

Створюємо нижчеприведені обробники подій, які демонструють процес отрисовки DIB:

procedure TForm1.FormCreate(Sender: TObject);

begin

BitmapToDIB(Image1.Picture.Bitmap, BitmapInfo, InfoSize

Bits, BitsSize);

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

FreeDIB(BitmapInfo, InfoSize, Bits, BitsSize);

end;

procedure TForm1.PaintBox1Paint(Sender: TObject);

var

OldPalette: HPalette;

begin

if Assigned(BitmapInfo) and Assigned(Bits) then

with BitmapInfo^.bmiHeader, PaintBox1.Canvas do

begin

OldPalette := SelectPalette(Handle

Image1.Picture.Bitmap.Palette,

false);

try

RealizePalette(Handle);

StretchDIBits(Handle, 0, 0 PaintBox1.Width, PaintBox1.Height,

0, 0, biWidth, biHeight, Bits

BitmapInfo^, DIB_RGB_COLORS,

SRCCOPY);

finally

SelectPalette(Handle, OldPalette, true);

end;

end;

end;

Функція з ім'ям PaletteFromW3DIB з GRAPHICS.PAS якраз займається створенням HPalette на основі DIB, але вона не оголошена як експортується, тому для її використання необхідно скопіювати її початковий код і вставити його в модуль.

4.1.6 Конвертація BMP в ICO

Необхідно створити два битмапа, битмап маски (назвемо його "AND" bitmap) і битмап зображення (назвемо його XOR bitmap). Можна пропустити обробники для "AND" і "XOR" битмапов в Windows API функції CreateIconIndirect() і використовувати обробник поверненої іконки.

procedure TForm1.Button1Click(Sender: TObject);

var

IconSizeX : integer;

IconSizeY : integer;

AndMask : TBitmap;

XOrMask : TBitmap;

IconInfo : TIconInfo;

Icon : TIcon;

begin

{ Одержуємо розмір ікони}

IconSizeX := GetSystemMetrics(SM_CXICON);

IconSizeY := GetSystemMetrics(SM_CYICON);

{Створюємо маску "And"}

AndMask := TBitmap.Create;

AndMask.Monochrome := true;

AndMask.Width := IconSizeX;

AndMask.Height := IconSizeY;

{Малюємо на масці "And"}

AndMask.Canvas.Brush.Color := clWhite;

AndMask.Canvas.FillRect(Rect( 0, 0, IconSizeX, IconSizeY));

AndMask.Canvas.Brush.Color := clBlack;

AndMask.Canvas.Ellipse( 4, 4, IconSizeX - 4, IconSizeY - 4 );

{Малюємо для тесту}

Form1.Canvas.Draw(IconSizeX * 2, IconSizeY, AndMask);

{Створюємо маску "XOr"}

XOrMask := TBitmap.Create;

XOrMask.Width := IconSizeX;

XOrMask.Height := IconSizeY;

{Малюємо на масці "XOr"}

XOrMask.Canvas.Brush.Color := ClBlack;

XOrMask.Canvas.FillRect(Rect( 0, 0, IconSizeX, IconSizeY));

XOrMask.Canvas.Pen.Color := clRed;

XOrMask.Canvas.Brush.Color := clRed;

XOrMask.Canvas.Ellipse( 4, 4, IconSizeX - 4, IconSizeY - 4 );

{Малюємо як тест}

Form1.Canvas.Draw(IconSizeX * 4, IconSizeY, XOrMask);

{Створюємо іконку}

Icon := TIcon.Create;

IconInfo.fIcon := true;

IconInfo.xHotspot := 0 ;

IconInfo.yHotspot := 0 ;

IconInfo.hbmMask := AndMask.Handle;

IconInfo.hbmColor := XOrMask.Handle;

Icon.Handle := CreateIconIndirect(IconInfo);

{ Знищуємо тимчасові бітмапи}

AndMask.Free;

XOrMask.Free;

{ Малюємо як тест}

Form1.Canvas.Draw(IconSizeX * 6, IconSizeY, Icon);

{ Оголошуємо іконку як іконку додатку}

Application.Icon := Icon;

{ генеруємо перемальовування}

InvalidateRect(Application.Handle, nil, true);

{Звільняємо іконку}

Icon.Free;

end ;

Спосіб перетворення зображення розміром 32x32 в іконку:

unit main;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls

Forms, Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class (TForm)

Button1: TButton;

Image1: TImage;

Image2: TImage;

procedure Button1Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end ;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

winDC, srcdc, destdc: HDC;

oldBitmap: HBitmap;

iinfo: TICONINFO;

begin

GetIconInfo(Image1.Picture.Icon.Handle, iinfo);

WinDC := getDC(handle);

srcDC := CreateCompatibleDC(WinDC);

destDC := CreateCompatibleDC(WinDC);

oldBitmap := SelectObject(destDC, iinfo.hbmColor);

oldBitmap := SelectObject(srcDC, iinfo.hbmMask);

BitBlt(destdc, 0, 0 Image1.picture.icon.width,

Image1.picture.icon.height,

srcdc, 0, 0, SRCPAINT);

Image2.picture.bitmap.handle := SelectObject(destDC, oldBitmap);

DeleteDC(destDC);

DeleteDC(srcDC);

DeleteDC(WinDC);

image2.Picture.Bitmap.savetofile(ExtractFilePath(Application.ExeName)

+ 'myfile.bmp' );

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

image1.picture.icon.loadfromfile( 'c:\myicon.ico' );

end;

end.

4.1.7 Конвертація BMP в RTF

Приклад:

function BitmapToRTF(pict: TBitmap): string ;

var

bi, bb, rtf: string ;

bis, bbs: Cardinal;

achar: ShortString;

hexpict: string ;

I: Integer;

begin

GetDIBSizes(pict.Handle, bis, bbs);

SetLength(bi, bis);

SetLength(bb, bbs);

GetDIB(pict.Handle, pict.Palette, PChar(bi)^, PChar(bb)^);

rtf := '{rtf1 {pict\dibitmap0 ' ;

SetLength(hexpict (Length(bb)+ Length(bi)) * 2 );

I := 2 ;

for bis := 1 to Length(bi) do

begin

achar := IntToHex(Integer(bi[bis]), 2 );

hexpict[I - 1]:= achar[ 1 ];

hexpict[I]:= achar[ 2 ];

Inc(I, 2 );

end ;

for bbs := 1 to Length(bb) do

begin

achar := IntToHex(Integer(bb[bbs]), 2 );

hexpict[I - 1]:= achar[ 1 ];

hexpict[I]:= achar[ 2 ];

Inc(I, 2);

end ;

rtf := rtf + hexpict + ' }';

Result := rtf;

end;

4.1.8 Конвертація CUR в BMP

Перетворення курсора в bitmap:

procedure TForm1.Button1Click(Sender: TObject);

var

hCursor: LongInt;

Bitmap: TBitmap;

begin

Bitmap := TBitmap.Create;

Bitmap.Width := 32 ;

Bitmap.Height := 32 ;

hCursor := LoadCursorFromFile( 'test.cur' );

DrawIcon(Bitmap.Canvas.Handle, 0, 0, hCursor);

Bitmap.SaveToFile( 'test.bmp' );

Bitmap.Free;

end;

4.1.9 Конвертація ICO в BMP

Var

Icon : TIcon;

Bitmap : TBitmap;

begin

Icon := TIcon.Create;

Bitmap := TBitmap.Create;

Icon.LoadFromFile( 'c:\picture.ico' );

Bitmap.Width := Icon.Width;

Bitmap.Height := Icon.Height;

Bitmap.Canvas.Draw( 0, 0, Icon);

Bitmap.SaveToFile( 'c:\picture.bmp' );

Icon.Free;

Bitmap.Free;

end;

Варіант 2:

procedure TIconShow.FileListBox1Click(Sender: TObject);

var

MyIcon: TIcon;

MyBitMap: TBitmap;

begin

MyIcon := TIcon.Create;

MyBitMap := TBitmap.Create;

try

{ одержуємо ім'я файлу і пов'язану з ним іконку}

strFileName := FileListBox1.Items[FileListBox1.ItemIndex];

StrPCopy(cStrFileName, strFileName);

MyIcon.Handle := ExtractIcon(hInstance, cStrFileName, 0 );

{ малюємо іконку на bitmap в speedbutton }

SpeedButton1.Glyph := MyBitMap;

SpeedButton1.Glyph.Width := MyIcon.Width;

SpeedButton1.Glyph.Height := MyIcon.Height;

SpeedButton1.Glyph.Canvas.Draw( 0, 0, MyIcon);

SpeedButton1.Hint := strFileName;

finally

MyIcon.Free;

MyBitMap.Free;

end;

end;

Щоб перетворити Icon в Bitmap, використовуйте TImageList. Для зворотного перетворення необхідно замінити метод AddIcon на Add, і методі GetBitmap на GetIcon.

function Icon2Bitmap(Icon: TIcon): TBitmap;

begin

with TImageList.Create ( nil ) do

begin

AddIcon (Icon);

Result := TBitmap.Create;

GetBitmap ( 0, Result);

Free;

end;

end;

4.1.10 Конвертація JPG в BMP

uses JPEG;

procedure JPEGtoBMP( const FileName: TFileName);

var

jpeg: TJPEGImage;

bmp: TBitmap;

begin

jpeg := TJPEGImage.Create;

try

jpeg.CompressionQuality := 100 ; {Default Value}

jpeg.LoadFromFile(FileName);

bmp := TBitmap.Create;

try

bmp.Assign(jpeg);

bmp.SaveTofile(ChangeFileExt(FileName '.bmp' ));

finally

bmp.Free;

end;

finally

jpeg.Free;

end;

end;

4.2 Програмна реалізація на C#

Програма призначена для перетворення графічних форматів. Для роботи з програмою необхідно її запустити, натиснувши на кнопку «Відкрити» в стандартному провіднику, вказати файл і задати формат, в який необхідно перетворити вказаний файл. Також є можливість задати імена файлів, одержаних після перетворення і бажаний розмір зображення.

Для іменування цільових зображень, можна використовувати оригінальні назви, при цьому, якщо файл з таким ім'ям вже існує, він буде перезаписаний. Також можна визначити префікс, за допомогою якого створюватиметься унікальне ім'я. Також можна встановити цільовий розмір зображення, тобто можна звузити або розтягнути результатне зображенню.

4.2.1 Вибір фотографій

Зображення для перетворення вибираються шляхом посилання на ShowDialog методом стандартного OpenFileDialog. Вибрані файли обробляються в методі DisplayThumbnails. Потім кожен файл образу, за допомогою Thumbnail, створюється і додається в panelThumbnails.Controls. При спробі завантажити файл, який не є зображенням, виникне виключення OutOfMemoryException.

4.2.2 Процес конверсії Thread

Для можливості спостереження за прогресом конвертації, сама конвертація запускається в окремому потоці. Окремий потік запускає відразу ж після натиснення кнопки «Конвертувати».

private void buttonConvert_Click(object sender, System.EventArgs e)

{

this.Cursor = Cursors.WaitCursor;

_convertThread = new Thread(new ThreadStart(ConvertImageFiles));

_convertThread.Start();

}

Метод ConvertImageFiles визначає розширення і формат для цільового зображення, а також ім'я файлу. Використовуючи цю інформацію і знаючи розмір, файли зображень можуть бути перетворені у вибраний формат.

private void ConvertImageFiles()

{

this.Cursor = Cursors.WaitCursor;

_converting = true;

this.EnableControls();

try

{

...

System.Drawing.Size targetSize = this.DetermineTargetSize(thumbnail.Image);

System.Drawing.Image targetImage = null;

try

{

targetImage = new Bitmap(thumbnail.Image, targetSize);

targetImage.Save(targetFileName, targetImageFormat);

this.Invoke(_imageInfoDelegate

new object[] { thumbnail, targetFileName, targetSize });

targetImage.Dispose();

}

catch (System.Threading.ThreadAbortException e)

{

throw e;

}

catch {

...

}

catch {

finally

{

this.Cursor = Cursors.Default;

_converting = false;

this.EnableControls();

}

}

Для того, що б уникнути зміни настройок під час конвертації, всі елементи настройок, розташовані на головній формі програми, стають неактивними відразу ж після запуску процесу конвертації і кнопка «Закрити» перейменовується в «Відмінити». При натисненні на кнопку «Відмінити» процес конвертації завершується за допомогою виклику методу _convertThread.Abort.

Оновлення інформації про прогрес робиться за допомогою методу Invoke основної форми програми.

private delegate void ImageInfoDelegate(Thumbnail thumbnail

string targetFile, System.Drawing.Size toSize);

private ImageInfoDelegate _imageInfoDelegate = null;

_imageInfoDelegate = new ImageInfoDelegate(DisplayImageInfo);

this.Invoke(_imageInfoDelegate, new object[] { thumbnail

targetFileName, targetSize });

Як вже наголошувалося, деякі елементи основної форми стають неактивними під час процесу конвертації і кнопка «Закрити» перетворюється на кнопку «Відміна». Крім того, якщо не вибрано ні єдиного файлу або ж не визначений шлях їх збереження після конвертації, кнопка «Конвертувати» залишається неактивною. Це здійснюється за допомогою методу EnableControls, який виконується при кожній зміні настройок.

private void EnableControls()

{

this.buttonConvert.Enabled =

!_converting &&

this.panelThumbnails.Controls.Count > 0 &&

this.labelTargetPathValue.Text.Trim() != "";

this.buttonBrowseTargetPath.Enabled = !_converting;

this.buttonOpen.Enabled = !_converting;

this.groupBoxOnConvert.Enabled = !_converting;

this.groupBoxTargetSize.Enabled = !_converting;

this.comboBoxTargetFormat.Enabled = !_converting;

this.buttonClose.Text = _converting ? "Cancel" : "Close";

}

4.2.3 Thumbnail контроль

Контрол Thumbnail є UserControl що містить PictureBox і два Label. У PictureBox відображається ескіз зображення, а елементи Label потрібні для виведення імені файлу і цільового розміру зображення.

Рис 4.1 Контрол Thumbnail

Основне завдання цього контрола полягає в тому, щоб показати мініатюру для кожного завантаженого файлу зображення, і для здійснення простого доступу до відповідним зображенням і його шляхи до файлу на диску. Шлях до файлу передається конструктору, і файл завантажується за допомогою методу FromFile.

public Thumbnail(string filePath)

{

InitializeComponent();

_filePath = filePath;

try

{

_image = System.Drawing.Image.FromFile(_filePath);

}

catch (System.OutOfMemoryException e)

{

throw e;

}

При завантаженні файлів. Які не є зображеннями виникає OutOfMemoryException, яка обробляється і здійснюється перехід до коду побудови ескізів. Якщо ж файл є картинкою, то відбувається розрахунок розміру мініатюр.

int max = Math.Min(this.pictureBox.Width, this.pictureBox.Height);

int width = _image.Width;

int height = _image.Height;

if (_image.Width > max || _image.Height > max)

{

if (_image.Width > _image.Height)

{

width = max;

height = (int) (_image.Height * max / _image.Width);

}

else

{

width = (int) (_image.Width * max / _image.Height);

height = max;

}

}

this.pictureBox.Image = new Bitmap(_image, width, height);

this.labelFileName.Text = Path.GetFileName(_filePath);

this.labelImageSize.Text = string.Format("{0} x {1}",

_image.Size.Width, _image.Size.Height);

}

4.3 Опис інтерфейсу програми

При запуску програми на екрані з'являється головне вікно програми (рис 4.2)

Рис 4.2 Головне вікно програми

Натиснувши на кнопку «Відкрити» з'являється стандартний діалог відкриття файлу, після чого вибрані файли будуть відображені програма у вигляді зменшених ескізів (Рис 4.3).

Рис 4.3 Вікно програми після відкриття малюнків

У програмі так само можна вказати директорію призначення, розмір, ім'я і формат конвертованих файлів по закінченні конвертації.

5 ЕКОНОМІЧНЕ ОБҐРУНТУВАННЯ ДОЦІЛЬНОСТІ РОЗРОБКИ ПРОГРАМНОГО ПРОДУКТУ

Визначення витрат на створення програмного продукту

Оскільки середа розробки є безкоштовною, витрати на створення програмного продукту складаються з витрат по оплаті праці розробника програми і витрат по оплаті машинного часу при відладці програми:

Зспп=Ззпспп +Змвспп+Зобщ,

де

Зспп - витрати на створення програмного продукту;

Ззпспп - витрати на оплату праці розробника програми;

Змвспп - витрати на оплату машинного часу;

Зобщ - загальні витрати.

Витрати на оплату праці розробника програми (Ззпспп) визначаються шляхом множення трудомісткості створення програмного продукту на середню годинну оплату програміста (з урахуванням коефіцієнта відрахувань на соціальні потреби):

Ззпспп=t*Tчас.

Розрахунок трудомісткості створення програмного продукту.

Трудомісткість розробки програмного продукту можна визначити таким чином:

t= to+ tа+ tб+ tп+ tд+ tот,

де

to - витрати праці на підготовку опису завдання;

tа - витрати праці на розробку алгоритму рішення задачі;

tб - витрати праці на розробку блок-схеми алгоритму рішення задачі;

tп - витрати праці на складання програми по готовій блок-схемі;

tд - витрати праці на підготовку документації завдання;

tот - витрати праці на відладку програми на ЕОМ при комплексній відладці завдання.

Складові витрат можна виразити через умовне число операторів Q. У нашому випадку число операторів у відлагодженій програмі Q=1050.

Розрахунок витрат праці на підготовку опису завдань.

Оцінити витрати праці на підготовку опису завдання не можливо, оскільки це пов'язано з творчим характером роботи, натомість оцінимо витрати праці на вивчення опису завдання з урахуванням уточнення опису і кваліфікації програміста:

to= Q*B/(75…85*K),

где

B - коефіцієнт збільшення витрат праці унаслідок недостатнього опису завдання, уточнень і деякої недоробки, B=1,2…5;

K - коефіцієнт кваліфікації розробника, для тих, що працюють до 2 років K=0,8;

Коефіцієнт В приймаємо рівним 2.

Таким чином отримаємо

to= 1050*2/(78*0,8) = 33,65 (люд-год).

Розрахунок витрат праці на розробку алгоритму.

Витрати праці на розробку алгоритму рішення задачі:

tа = Q/(60…75*K)

tа = 1050/(70*0,8)=18,75 (люд-год).

Розрахунок витрат праці на розробку блок-схеми.

Витрати праці на розробку блок-схеми алгоритму рішення задачі обчислимо таким чином:

tб= Q/(60…75*K)

tб = 1050/(71*0,8)=18,48 (люд-год).

Розрахунок витрат праці на складання програми.

Витрати праці на складання програми по готовій блок-схемі обчислимо таким чином:

tп= Q/(60…75*K)

tп = 1050/(72*0,8)=18,23 (люд-год).

Розрахунок витрат праці на відладку програми.

Витрати праці на відладку програми на ЕОМ при комплексній відладці завдання:

tот=1.5* tAот,

де tAот - витрати праці на відладку програми на ЕОМ при автономній відладці одного завдання;

tAот= Q/(40…50*K)

tAот = 1050/(48*0,8)=27,34 (люд-год)

Звідси tот=1.5*27,34=41,01 (люд-год).

Розрахунок витрат праці на підготовку документації.

Витрати праці на підготовку документації по завданню визначаються:

tд= tдр+ tдо,

де

tдр - витрати праці на підготовку матеріалів в рукопису;

tдо - витрати на редагування, друк і оформлення документації;

tдр= Q/(150…200*K)

tдр = 1050/(180*0.8) = 7,29 (люд-год)

tдо=0.75*tдр

tдо =0.75*7,29=5,47 (люд-год)

Звідси

tд=7,29+5,47=12,76 (люд-год).

Отже, загальну трудомісткість програмного продукту можна розрахувати:

t = 33,65 +18,75 +18,48+18,23 +41,01+12,76 =142,88 (люд-год).

Розрахунок середньої зарплати програміста.

Середня зарплата програміста в сучасних ринкових умовах може варіюватися в широкому діапазоні. Для розрахунку візьмемо середню годинну оплату праці, яка складає Тчас.=8 грн/година, що означає 1408 грн/мес при 8-ми годинному робочому дні і 5-ти денному робочому тижню.

Витрати на оплату праці програміста складаються із зарплати програміста і нарахувань на соціальні потреби. Нарахування на соціальні потреби включають:

33,2% - пенсійний фонд;

1,4% - соціальне страхування;

1.6% - відрахування до державного фонду зайнятості на випадок безробіття;

1% - на соціальне страхування від нещасного випадку на виробництві і професійних захворювань, які спричинили втрату працездатності.

Разом нарахування на соціальні потреби складають 37,2%.

Тобто 1408грн*37,2%=520,96грн

Звідси витрати на оплату праці програміста складають:

Ззпспп= 1408+520,96=1928,96грн.

Витрати на оплату машинного часу. Витрати на оплату машинного часу при відладці програми визначаються шляхом множення фактичного часу відладки програми на ціну машино-години орендного часу:

Змвспп =Счас*tЕОМ,

де

Счас - ціна машино-години орендного часу, грн/год;

tЕОМ - фактичний час відладки програми на ЕОМ;

Розрахунок фактичного часу відладки.

Фактичний час відладки обчислимо за формулою:

tеом = tп + tдо + tот ;

tеом =18,23 +5,47 +41,01 = 64,71 години

Розрахунок ціни машино-години.

Ціну машино-години знайдемо по формулі:

Сгод = Зеом/Теом,

де

Зеом - повні витрати на експлуатацію ЕОМ на протязі року;

Теом - дійсний річний фонд часу ЕОМ, год/рік.

Розрахунок річного фонду часу роботи ПЕОМ.

Загальна кількість днів в році - 365. Число святкових і вихідних днів - 114(10 святкових і 52*2- вихідні).

Час простою в профілактичних роботах визначається як щотижнева профілактика по 3 години.

Разом річний фонд робочого часу ПЕОМ складає:

Теом = 8*(365-114)-52*3=1852 год.

Розрахунок повних витрат на експлуатацію ЕОМ.

Повні витрати на експлуатацію можна визначити по формулі:

Зеом = (Ззп+ Зам+ Зэл+ Здм+ Зпр+ Зін),

де,

Ззп - річні витрати на заробітну плату обслуговуючого персоналу, грн/рік;

Зам - річні витрати на амортизацію, грн/рік;

Зэл - річні витрати на електроенергію, споживану ЕОМ, грн/рік;

Здм - річні витрати на допоміжні матеріали, грн/рік;

Зпр - витрати на поточний ремонт комп'ютера, грн/рік;

Зін - річні витрати на інші і накладні витрати, грн/рік.

Амортизаційні відрахування.

Річні амортизаційні відрахування визначаються по формулі:

Зам=Сбал*Нам,

де Сбал - балансова вартість комп'ютера, грн/шт.;

Нам - норма амортизації, %;

Нам =25%.

Балансова вартість ПЕОМ включає відпускну ціну, витрати на транспортування, монтаж устаткування і його відладку:

Сбал = Срин +Зуст ;

де

Срин - ринкова вартість комп'ютеру, грн/шт.,

Зуст - витрати на доставку і установку комп'ютера, грн/шт;

Комп'ютер, на якому велася робота, був придбаний за ціною

Срин =5000 грн, витрати на установку і наладку склали приблизно 10% від вартості комп'ютера.

Зуст = 10%* Срин

Зуст =0.1*5000=500 грн.

Звідси, Сбал = 5000 +500 =5500 грн./шт.;

а Зам=5500*0,25= 1375 грн/год.

Розрахунок витрат на електроенергію.

Вартість електроенергії, споживаної за рік, визначається по формулі:

Зел = Реом * Теом * Сел * А,

де

Реом - сумарна потужність ЕОМ,

Теом - дійсний річний фонд часу ЕОМ, год/рік;

Сел - вартість 1кВт*год електроенергії;

А - коефіцієнт інтенсивного використання потужності машини.

Згідно технічному паспорту ЕОМ Реом =0.22 кВт, вартість 1кВт*год електроенергії для споживачів Сел =0,2436 грн., інтенсивність використання машини А=0.98.

Тоді розрахункове значення витрат на електроенергію:

Зел = 0.22 * 1852* 0.2436* 0.30 = 29,78 грн.

Розрахунок витрат на поточний ремонт.

Витрати на поточний і профілактичний ремонт приймаються рівними 5% від вартості ЕОМ:

Зтр = 0.05* Сбал

Зтр = 0.05* 5500 = 275 грн.

Розрахунок витрат на допоміжні матеріали.

Витрати на матеріали, необхідні для забезпечення нормальної роботи ПЕОМ, складають близько 1 % від вартості ЕОМ:

Звм =0,01* 5500 =55 грн.

Інші витрати по експлуатації ПЕВМ.

Інші непрямі витрати, пов'язані з експлуатацією ПЕВМ, складаються з вартості послуг сторонніх організацій і складають 5% від вартості ЕОМ:

Зпр = 0,05* 5500 =275 грн.

Річні витрати на заробітну плату обслуговуючого персоналу.

Витрати на заробітну плату обслуговуючого персоналу складаються з основної заробітної плати, додаткової і відрахувань на заробітну плату:

Ззп = Зоснзп +Здопзп +Зотчзп.

Основна заробітна плата визначається, виходячи із загальної чисельності тих, що працюють в штаті:

Зоснзп =12 *?Зіокл,

де

Зіокл - тарифна ставка і-го працівника в місяць, грн;

12 - кількість місяців.

У штат обслуговуючого персоналу повинні входити інженер-електронщик з місячним окладом 1500 грн. і електрослюсар з окладом 1200 грн. Тоді, враховуючи, що даний персонал обслуговує 20 машин, маємо витрати на основну заробітну плату обслуговуючого персоналу, які складуть:

Зоснзп = 12*(1500+1200)/20=1620 грн.

Додаткова заробітна плата складає 60 % від основної заробітної плати:

Здопзп = 0.6 *1620 = 972 грн.

Відрахування на соціальні потреби складають 37,2% від суми додатковою і основною заробітних плат:

Зотчзп = 0,372*(1620 + 972) = 959,04 грн.

Тоді річні витрати на заробітну плату обслуговуючого персоналу складуть:

Ззп = 1620 +972 +959,04 = 3551,04 грн.

Повні витрати на експлуатацію ЕОМ в перебігу року складуть:

Зеом = 3551,04 + 1375+ 29,78 + 55 + 275+ 275= 5560,82 грн.

Тоді ціна машино-години часу, що орендується, складе

Сгод = 5560,82 /1852 = 3 грн.

А витрати на оплату машинного часу складуть:

Змвспп =Сгод*tеом

Змвспп = 3 * 64,71= 194,13 грн.

Розрахунок загальних витрат.

Загальні витрати - 643

Зспп=Ззпспп +Змвспп+Ззаг

Зспп =1928,96+194,13 +643=2766,09 грн.

Тобто собівартість програмного продукту 2766,09 грн.

А зараз визначимо ціну програмного продукту:

Ц = Зспп + Р,

Где Ц - ціна програмного продукту;

Р - 15% від витрат на створення програмного продукту.

Ц = 2766,09 +414,91=3181 грн.

Ціна програмного продукту дорівнює 3181 грн.

В порівнянні з іншими програмними продуктами, які виконують аналогічні функції та мають вартість орієнтовно $1000, розроблена програма за умови тиражування обійдеться значно дешевше, ніж аналоги.

Економія від використання однієї розробленої програми представлятиме:

7,7 - курс долара Національного банку України

ЕК = $1000 * 7,7-3181= 4519 грн.

6. ОХОРОНА ПРАЦІ

Охорона праці - це система законодавчих актів, соціально-економічних, організаційних, технічних, гігієнічних та лікувально-профілактичних заходів і засобів, що забезпечують безпеку, збереження здоров'я і працездатності людини в процесі праці.

Задачі охорони праці - забезпечення нормальних, здорових, безпечних умов праці, вивчення причин травматизму, професійних захворювань, пожарів та розробки систем заходів і вимог по їх усуненню.

Законодавство України про охорону праці базується на:

- Конституція України, яка гарантує права громадян на працю, відпочинок, охорону здоров'я, медичну допомогу і страхування;

- Закон України „Про охорону праці”, де вказано, що державна політика в області охорони праці базується на пріоритеті життя і здоров'я людей в умовах їх трудової діяльності. Відповідальність за створення нормальних і безпечних умов труда несе роботодавець незалежно від форми власності підприємства чи установи які здійснюють розробку виробництва та застосування ПЕОМ і ПК;

- Норми штучного та природного освітлення визначені СНіП;

- Закон України „Про забезпечення санітарного та епідемічного благополуччя населення” де вказані основні вимоги гігієни та санітарії;

- Параметри мікроклімату на робочих місцях регламентовані Держстандартом і ДСН;

- Категорія робіт по величині загальних енергозатрат встановлена ДСН;

- Закон України „Про загальнообов'язкове державне соціальне страхування від нещасного випадку на виробництві та професійного захворювання, які спричинили втрату працездатності”, який гарантує право трудящих на соціальний захист і компенсацію постраждалим матеріальних втрат при травмуванні і професійного захворювання;Размещено на http://www.allbest.ru/

- Кодекс законів про працю (КЗпП) де викладені окремі вимоги охорони праці;

- Пожежна безпека викладена в законі України „Про пожежну безпеку” і „Правила про пожежну безпеку в Україні”

Крім того є ряд Державних стандартів, правил, норм, інструкцій та інших нормативних документів, регламентуючих питання охорони праці.

6.1 Аналіз небезпечних і шкідливих факторів

Робочим місцем вважається місце постійного чи періодичного перебування працюючого для спостереження й ведення виробничого процесу чи експерименту. Організація робочого місця заключається у виборі робочої пози, визначенні робочих зон, розміщенні органів управління, індикаторів, інструментів і заготовок. Частина простору робочого місця, в якому здійснюються робочі процеси, може бути розділена на зони. Робоча поза буде найменш втомлювальною при умові, що робоча зона сконструйована правильно, тобто забезпечується відповідність цієї зони з оптимальним полем зору працюючого.

Одна з найважливіших задач охорони праці - забезпечення безпеки працюючих, тобто забезпечення такого стану умов праці, при якому виключено дію на працюючих небезпечних і шкідливих виробничих чинників.

Нанесення травми людині в умовах виробництва обумовлене наявністю небезпечних виробничих чинників:

- підвищенні значення електричного струму, статичної електрики та рівня електромагнітних випромінювань;

- підвищений рівень рентгенівських випромінювань;

- підвищений рівень шуму;

- несприятливі мікрокліматичні умови;

- недостатнє або надмірне освітлення;

- психофізіологічні шкідливі і небезпечні виробничі чинники.

Держстандарт 12.1.007-76 розповсюджується на шкідливі речовини, що втримуються в сировині, продуктах, напівфабрикатах і відходах виробництва, і встановлює загальні вимоги безпеки при їх виробництві, застосуванні та зберіганні. По ступіню впливу на організм шкідливі речовини діляться на чотири класи шкідливості:

1-й - речовини надзвичайно шкідливі;

2-й - речовини високо шкідливі;

3-й - речовини помірно шкідливі;

4-й - речовини мало шкідливі.

Гранично припустима концентрація (ГПК) шкідливих речовин у повітрі робочої зони - обов'язкові санітарні нормативи для використання при проектуванні виробничих будинків, технологічних процесів, устаткування й вентиляції а також для попереджувального й поточного санітарного нагляду.

Держстандарт 12.1.005-88 розповсюджується на повітря робочої зони підприємств, встановлює загальні санітарно-гігієнічні вимоги до показників мікроклімату й допустимому змісту шкідливих речовин в повітрі робочої зони. Вимоги на допустимий зміст шкідливих речовин в повітрі робочої зони розповсюджуються на робочі місця незалежно від їх розташування.

Показники, якими характеризується мікроклімат є: температура повітря, відносна вологість повітря, швидкість руху повітря, інтенсивність теплового випромінювання.

На організм людини і обладнання ПЕОМ великий вплив виявляє відносна вологість. При відносній вологості повітря більш 75-80% знижується опір ізоляції, змінюються робочі характеристики елементів, зростає інтенсивність відмов елементів ПЕОМ. Швидкість руху повітря і запиленість повітряного середовища виявляють вплив на функціональну діяльність людини і роботу приладів ПЕОМ.

Одним з найважливіших фізіологічних механізмів організму є терморегуляція, що залежить від мікрокліматичних умов навколишньої середи. Терморегуляція підтримує тепловий баланс організму людини при різноманітних метеорологічних умовах і тяжкості роботи, що виконується за рахунок звуження або розширення поверхні кровоносних судин і відповідної роботи потових залоз.

Несприятливий мікроклімат в процесі роботи викликає недомагання і втому організму, порушує нервову і розумову діяльність, сприяє зниженню спостережливості і швидкості реакції.

Психофізіологічні шкідливі і небезпечні виробничі чинники по характеру дії поділяються на фізичні і нервово-психічні перевантаження.

При експлуатації ПЕОМ можуть виникнути негативні явища в організмі людини. Розлади, що виникають в результаті постійного виконання дій, що повторюються, стосуються працівників, що використовують в своїй роботі клавіатуру. При цьому виникає синдром тунельного зап'ястя, який викликає розпухання сухожиль, і що супроводжується постійною біллю при виконанні будь-яких дій, навіть не зв'язаних безпосередньо з професійною діяльністю.

Відповідно діючим нормативним документам (СН 512-78 и ДСанПіН 3.3.007-98) площа приміщення 13,0 мІ; об'єм - 20 мі. Стіна, стеля, підлога приміщення виготовляються з матеріалів, дозволених для оформлення приміщень санітарно-епідеміологічним наглядом. Підлога приміщення вкрита діелектричним килимком, випробуваним на електричну міцність.

Висота робочої поверхні столу для персонального комп'ютера (ПК) - 690 мм, ширина повинна забезпечувати можливість виконання операцій в зоні досягнення моторного ходу; висота столу 725 мм, ширина 800 мм, глибина 900 мм. Простір для ніг: висота 600 мм, ширина 500 мм, глибина на рівні колін 500 мм, на рівні витягнутої ноги 650мм.

Ширина й глибина сидіння 400 мм, висота поверхні сидіння 450 мм, кут нахилу поверхні від 15є вперед до 5є назад. Поверхня сидіння плоска, передній край закруглений.

Заземлення конструкцій, які знаходяться в приміщенні надійно захищені діелектричними щитками. В приміщенні з ПЕОМ кожен день проводиться вологе прибирання.

В доступних місцях знаходяться аптечки першої медичної допомоги.

Приміщення з ПЕОМ оснащено системою автоматичної пожежної сигналізації, а також устатковане засобами пожежегасіння. Підходи до засобів пожежегасіння вільні. Приміщення має кімнати для відпочинку, приймання їжі, психологічної розгрузки та інші побутові приміщення.

Для забезпечення безпеки життєдіяльності працівників у приміщенні варто підтримувати необхідну якість повітря, тобто оптимальні (у крайньому випадку припустимі) параметри мікроклімату, сталість газового складу й відсутність (у крайньому випадку не вище ГПК) шкідливих домішок у повітрі. Для цього необхідно подавати в ці приміщення певну кількість чистого зовнішнього повітря, потреба в якому регламентується СНіП 2.04.05-91. Для підтримки певних параметрів мікроклімату використовується опалення, вентиляція, кондиціювання, що є найважливішою частиною інженерного спорудження.

Вентиляція - це організований і регульований повітрообмін у приміщеннях, у процесі якого забруднене або нагріте повітря віддаляється й на його місце подається свіже чисте повітря.

Системи опалення - це комплекс елементів, необхідних для опалення приміщень в холодний період року, нормованої температури повітря не нижче встановленої Держстандарт 12.1. 005-88 і СНіП 2.04. 05-91. У приміщеннях з електронно-обчислювальною технікою передбачають центральне опалення в сполученні із приточною вентиляцією або кондиціювання повітря при одне- і двозмінному режимах роботи, а при трьохзмінному - тільки повітряне опалення.

Кондиціювання - це автоматична підтримка в закритих приміщеннях всіх або окремих параметрів повітря з метою забезпечення оптимальних мікрокліматичних умов.

Згідно СНіП 2.04. 05-91 система вентиляції, кондиціювання повітря й повітряного опалення передбачена для суспільних, адміністративно-побутових і виробничих категорій.

При роботі на ПЕОМ людина наражається на шумовий вплив з боку багатьох джерел, наприклад, шум викликаний роботою принтера (70 дБ), вентиляторів і кондиціонерів (до 100 дБ).

Під впливом шуму відбувається зниження слухової чутливості, що тим значні, ніж вище інтенсивність шуму і більше його експозиція. Діючи на слуховий аналізатор, шум змінює функціональний стан багатьох систем органів людини внаслідок взаємодії між ними через центральну нервову систему. Це виявляє вплив на органи зору людини, вестибулярний апарат і рухові функції, а також призводить до зниження мускульної дієздатності.


Подобные документы

  • DirectX як набір API функцій, розроблених для вирішення завдань, пов'язаних з ігровим і відеопрограмуванням в операційній системі Microsoft Windows. Етапи створення тривимірних графічних додатків на базі платформи dotNET. Аналіз компонентної моделі COM.

    дипломная работа [4,4 M], добавлен 22.10.2012

  • Графічна підсистема Delphi 5, її можливості, інструменти та принципи побудови прикладних програм з використанням графіки; дочірні класи. Методи опрацювання графічних зображень різних форматів і типів: растрових файлів, метафайлів Windows, піктограм.

    лабораторная работа [47,9 K], добавлен 19.03.2011

  • Найбільш розповсюджені середовища створення графічних зображень та 3D моделей. Основні інструменти векторних редакторів. Функції програм Adobe Photoshop и Корелдроу. Графічні моделі, характеристики й типи графічних файлів. Створення власних моделей.

    дипломная работа [6,7 M], добавлен 25.06.2011

  • Дослідження сутності технології Drag&Drop та особливостей її застосування. Властивості та події об'єктів Delphi, які використовуються при програмуванні технології Drag&Drop. Призначення обробників подій OnDragOver та OnDragDrop. Контекстна підказка.

    лабораторная работа [14,4 K], добавлен 20.03.2011

  • BMP як формат зберігання растрових зображень, огляд структури файлу. Створення програми для запису та перегляду графічних BMP-файлів на мові програмування Turbo Pascal 7.0, розробка функціональної схеми і алгоритмів, особливості проведення тестування.

    курсовая работа [325,8 K], добавлен 12.06.2011

  • Створення програмного модуля імітаційного дослідження архітектури комп'ютерних мереж системи "Емулятор мережі" в середовищі Microsoft Visual C # 8.0 Express Edition з використанням технології dotNet. Розробка комплексних лабораторних робіт на її основі.

    дипломная работа [2,2 M], добавлен 26.10.2012

  • Визначення принципів розробки додатків для Windows 8 засобами об'єктно-орієнтованого програмування. Розробка програмного застосування для перегляду графічних файлів з функціями здобуття інформації про слайд-шоу. Інтерфейс користувача та лістинг програми.

    курсовая работа [2,8 M], добавлен 23.10.2014

  • Характеристика формування навичок розробки додатків із використанням кнопкових компонентів у середовищі програмування Visual Studio. Створення програми, що переводить числа з однієї системи числення до іншої. Особливість застосування додатку Converter.

    практическая работа [249,7 K], добавлен 01.12.2022

  • Проектування розподіленої інформаційної системи із використанням технології MIDAS. Методика створення сервера прикладень за технологією MIDAS. Віддалений модуль даних - основна частина сервера прикладень. Методика створення клієнтського прикладення.

    лабораторная работа [582,2 K], добавлен 08.06.2009

  • Розробка гнучкої довідкової системи, яка дозволяє наочно проілюструвати можливості управління додатками MS Office за допомогою програм, створених у середовищі Delphi. Система базується на використанні технології COM і об'єктних моделей MS Word і MS Excel.

    дипломная работа [2,5 M], добавлен 25.10.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.