на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка программного обеспечения для фильтрации растровых изображений
p align="left">ON_UPDATE_COMMAND_UI(ID_EDIT_BRIGHTNESSANDCONTRAST, OnUpdateEditBrightnessandcontrast)

ON_UPDATE_COMMAND_UI(ID_EDIT_INVERTCOLORS, OnUpdateEditInvertcolors)

ON_COMMAND(ID_EDIT_STOP, OnEditStop)

ON_UPDATE_COMMAND_UI(ID_EDIT_STOP, OnUpdateEditStop)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

// CBMDoc construction/destruction

CBMDoc::CBMDoc():m_EventDoTransform(FALSE, TRUE)

{

// TODO: add one-time construction code here

m_pCurBM=NULL;

m_bEditable=FALSE;

m_pCurFilter=NULL;

}

CBMDoc::~CBMDoc()

{

}

BOOL CBMDoc::OnNewDocument()

{

if (!CDocument::OnNewDocument())

return FALSE;

// TODO: add reinitialization code here

// (SDI documents will reuse this document)

return TRUE;

}

// Адрес пикселя

pCurPix=m_pData+y*DataStrLength+x*3;

// Яркость рассчитывается как 0.3*Red+0.59*Green+0.11*Blue,

// но пиксельные данные хранятся в файле BMP, в порядке BGR

Brightness=(BYTE)((0.11*(*pCurPix) +

0.59*(*(pCurPix+1))+

0.3*(*(pCurPix+2)))*Range/256);

pHist[Brightness]+=1;

}

return TRUE;

};

// stdafx.cpp : source file that includes just the standard includes

//BMViewer.pch will be the pre-compiled header

//stdafx.obj will contain the pre-compiled type information

#include "stdafx.h"

// BMDoc.h : interface of the CBMDoc class

//

/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_BMDOC_H__0CC04D31_A879_4674_AAD5_292699AE7BA7__INCLUDED_)

#define AFX_BMDOC_H__0CC04D31_A879_4674_AAD5_292699AE7BA7__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#include <afxmt.h>

#include "Raster.h"

#include "Filter.h"

#define UM_STARTTRANSFORMWM_USER+0x8000

#define UM_ENDOFTRANSFORMUM_STARTTRANSFORM+1

class CBMDoc : public CDocument

{

protected: // create from serialization only

CBMDoc();

DECLARE_DYNCREATE(CBMDoc)

// Attributes

public:

// Флаги

BOOLm_bEditable;// можем ли редактировать данные

CEventm_EventDoTransform; // событие - выполняется преобразование

// Статистика

LONGm_lExecutedPercent;

// Данные

CRaster m_BM[2];// два буфера для изображений

CRaster *m_pCurBM;// указатель на активный буфер

//Фильтры

CFilter*m_pCurFilter;

CBrightCont m_BrightContFilter;

CInvertColors m_InvertColorsFilter;

CBlurm_BlurFilter;

CSharpm_SharpFilter;

// Operations

public:

CSize GetCurrentBMSize();

//Возвращает номер активного буфера

intGetNCurrentBM();

//Возвращает указатель на текущую картинку

CRaster* GetCurrentBMPtr();

//Возвращает указатель на буфер

CRaster* GetBufferBMPtr();

//Поменять текущее изображение и буффер местами

void SwapBM();

//Нарисовать текущее изображение

void DrawCurrent();

// Создает буфер заданного размера

// (при вызове без аргументов размер равен текущей картинке)

// совместимый с текущей картинкой

BOOL CreateCompatibleBuffer(LONG width=0, LONG height=0);

//Запускает поток преобразования

void Transform();

protected:

//Функция потока преобразования

static UINT ThreadProc(LPVOID pv);

//Цикл преобразования с использованием активного фильтра

void TransformLoop();

//Посылает сообщение всем окнам

void InformAllViews(UINT msg, WPARAM wPar=0, LPARAM lPar=0);

public:

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CBMDoc)

public:

virtual BOOL OnNewDocument();

virtual void Serialize(CArchive& ar);

virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);

virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);

//}}AFX_VIRTUAL

// Implementation

public:

void Onio();

virtual ~CBMDoc();

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

protected:

// Generated message map functions

protected:

//{{AFX_MSG(CBMDoc)

afx_msg void OnEditUndo();

afx_msg void OnEditBrightnessandcontrast();

afx_msg void OnEditInvertcolors();

afx_msg void OnEditBlur();

afx_msg void OnEditSharp();

afx_msg void OnUpdateEditBlur(CCmdUI* pCmdUI);

afx_msg void OnUpdateEditSharp(CCmdUI* pCmdUI);

afx_msg void OnUpdateEditUndo(CCmdUI* pCmdUI);

afx_msg void OnUpdateEditBrightnessandcontrast(CCmdUI* pCmdUI);

afx_msg void OnUpdateEditInvertcolors(CCmdUI* pCmdUI);

afx_msg void OnEditStop();

afx_msg void OnUpdateEditStop(CCmdUI* pCmdUI);

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BMDOC_H__0CC04D31_A879_4674_AAD5_292699AE7BA7__INCLUDED_)

// BMView.h : interface of the CBMView class

//

/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_BMVIEW_H__A58B1237_DC72_4389_BA43_93CC54F0F5EA__INCLUDED_)

#define AFX_BMVIEW_H__A58B1237_DC72_4389_BA43_93CC54F0F5EA__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

class CBMView : public CScrollView

{

// Идентификатор таймера

UINT m_nTimer;

// Заголовок окна

CString m_strOrgTitle;

//Виртуальный экран

CBitmap m_VirtScreenBitmap;// растр

CDCm_VirtScreenDC;// контекст

// Масштаб вывода картинки

doublem_dScale;

intm_nStretchMode;

protected: // create from serialization only

CBMView();

DECLARE_DYNCREATE(CBMView)

// Attributes

public:

CBMDoc* GetDocument();

// Operations

public:

BOOL UpdateVirtualScreen();

void OnStartTimer();

void OnStopTimer();

afx_msg LONG OnStartTransform(UINT wParam, LONG lParam);

afx_msg LONG OnEndTransform(UINT wParam, LONG lParam);

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CBMView)

public:

virtual BOOL PreCreateWindow(CREATESTRUCT& cs);

virtual void OnInitialUpdate();

protected:

virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);

virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);

virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);

virtual void OnDraw(CDC* pDC);

virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);

virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);

//}}AFX_VIRTUAL

// Implementation

public:

virtual ~CBMView();

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

protected:

// Generated message map functions

protected:

//{{AFX_MSG(CBMView)

afx_msg BOOL OnEraseBkgnd(CDC* pDC);

afx_msg void OnTimer(UINT nIDEvent);

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

afx_msg void OnViewZoomin();

afx_msg void OnViewZoomout();

afx_msg void OnViewStretchhalftone();

afx_msg void OnUpdateViewStretchhalftone(CCmdUI* pCmdUI);

afx_msg void OnViewStretchcoloroncolor();

afx_msg void OnUpdateViewStretchcoloroncolor(CCmdUI* pCmdUI);

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

#ifndef _DEBUG // debug version in BMView.cpp

inline CBMDoc* CBMView::GetDocument()

{ return (CBMDoc*)m_pDocument; }

#endif

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BMVIEW_H__A58B1237_DC72_4389_BA43_93CC54F0F5EA__INCLUDED_)

// BMViewer.h : main header file for the BMVIEWER application

//

#if !defined(AFX_BMVIEWER_H__854A9B8C_6BD4_44CA_B4E4_F00CEF40C1E7__INCLUDED_)

#define AFX_BMVIEWER_H__854A9B8C_6BD4_44CA_B4E4_F00CEF40C1E7__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

#ifndef __AFXWIN_H__

#error include 'stdafx.h' before including this file for PCH

#endif

#include "resource.h" // main symbols

/////////////////////////////////////////////////////////////////////////////

// CBMApp:

// See BMViewer.cpp for the implementation of this class

//

class CBMApp : public CWinApp

{

public:

CBMApp();

// Overrides

// ClassWizard generated virtual function overrides

//{{AFX_VIRTUAL(CBMApp)

public:

virtual BOOL InitInstance();

//}}AFX_VIRTUAL

// Implementation

//{{AFX_MSG(CBMApp)

afx_msg void OnAppAbout();

afx_msg void OnFileNew();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}

// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BMVIEWER_H__854A9B8C_6BD4_44CA_B4E4_F00CEF40C1E7__INCLUDED_)

//BrightContDlg.h

#if !defined(AFX_BRIGHTCONTDLG_H__310F8D78_02DE_4055_A8DD_609EFC475802__INCLUDED_)

#define AFX_BRIGHTCONTDLG_H__310F8D78_02DE_4055_A8DD_609EFC475802__INCLUDED_

#if _MSC_VER > 1000

#pragma once

#endif // _MSC_VER > 1000

// BrightContDlg.h : header file

//

/////////////////////////////////////////////////////////////////////////////

// CBrightContDlg dialog

class CBrightContDlg : public CDialog

{

// Construction

public:

CBrightContDlg(CWnd* pParent = NULL); // standard constructor

int m_iBrightnessOffset;

int m_iContrastOffset;

// Dialog Data

Страницы: 1, 2, 3, 4, 5, 6



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.