Информация


Programm.ws - это сайт, на котором вы можете почитать литературу по языкам программирования, а так-же посмотреть примеры работающих программ на С++, ассемблере, паскале и много другого..

Программирование — в обычном понимании, это процесс создания компьютерных программ.
В узком смысле (так называемое кодирование) под программированием понимается написание инструкций — программ — на конкретном языке программирования (часто по уже имеющемуся алгоритму — плану, методу решения поставленной задачи). Соответственно, люди, которые этим занимаются, называются программистами (на профессиональном жаргоне — кодерами), а те, кто разрабатывает алгоритмы — алгоритмистами, специалистами предметной области, математиками.
В более широком смысле под программированием понимают весь спектр деятельности, связанный с созданием и поддержанием в рабочем состоянии программ — программного обеспечения ЭВМ. Более точен современный термин — «программная инженерия» (также иначе «инженерия ПО»). Сюда входят анализ и постановка задачи, проектирование программы, построение алгоритмов, разработка структур данных, написание текстов программ, отладка и тестирование программы (испытания программы), документирование, настройка (конфигурирование), доработка и сопровождение.

Глава 15. Изображения и звук

Изменение интенсивности изображения

Изменение интенсивности изображения выражается математически в умножении каждой составляющей цвета на число factor и прибавлении к результату умножения числа offset. Результат приводится к диапазону значений составляющей. После этого интенсивность каждой составляющей цвета линейно изменяется в одном и том же масштабе.

Числа factor и offset постоянны для каждого пиксела и задаются в конструкторе класса вместе с правилами визуализации hints:

RescaleOp(float factor, float^offset, RenderingHints hints) После этого остается применить метод filter ().

На рис. 15.7 интенсивность каждого цвета уменьшена вдвое, в результате белый фон стал серым, а цвета — темнее. Затем интенсивность увеличена на 70 единиц. В листинге 15.6 приведена программа, выполняющая это преобразование.

Листинг 15.6. Изменение интенсивности изображения

import Java.awt.*;

import j ava.awt.image.*;

import j ava.awt.event.*;

public class Rescale extends Frame{ 

private Bufferedlmage bi; 

public Rescale(String s){ 

super (s) ;

Image img = getToolkit().getlmage("javalogo52x88.gif"); 

try{

MediaTracker mt = new MediaTracker(this); 

mt.addlmage(img, 0); 

mt.waitForlD(O); }

catch(Exception e){}

bi = new Bufferedlmage(img.getWidth(this), img.getHeight(this),

BufferedImage.TYPE_INT_RGB); 

Graphics2D big = bi.createGraphics(); 

big.drawlmage(img, 0, 0, this); 

}

public void paint(Graphics g){ 

Graphics2D g2 = (Graphics2D)g; 

int w = getSize().width; 

int bw = bi.getWidth(this);

int bh = bi.getHeight(this); 

Bufferedlmage bimg =

new Bufferedlmage(bw, bh, BufferedImage.TYPE_INT_RGB); 

//——————— Начало определения преобразования --——-——— 

RescaleOp гор = new RescaleOp(0.5f, 70.Of, null); 

rop.filter(bi, bimg); 

//——————— Конец определения преобразования ———————

g2.drawlmage(bi, null, 10, 30); 

g2.drawlmage(bimg, null, w/2+3, 30); 

public static void main(String(] args){

Frame f = new Rescale(" Изменение интенсивности"); 

f.addWindowListener(new WindowAdapter(){ 

public void windowClosing(WindowEvent e) {

System.exit(0);

}

));

f.setSize(300, 200);

f.setvisible(true);

}

Рис. 15.7. Изменение  интенсивности изображения