Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.27;
Скачать: CL | DM;

Вниз

индикатор загрузки отправки   Найти похожие ветки 

 
mikola   (2007-12-24 07:57) [0]

дорогие гуру оч прошу помочь ибо если не успею до 25 сделать прогу не попаду к семье на новый год :((
проблема 1 делаю в проге загрузку/отправку  файлов на фтп (использую инди) нужно реализовать такую штуку - пока идет load/download файлов пользователь видел индикатор загрузки/получения файлов и не мог работать с прогой
проблема 2 нужен какой нить компонент который делает сжатие картинок (стандартная компрессия дает плохое качество)
если есть возможность сопроводите ответы кодом..


 
Riply ©   (2007-12-24 10:13) [1]

> [0] mikola   (24.12.07 07:57)
> ибо если не успею до 25 сделать прогу не попаду к семье на новый год

А сами мы не местные ?

> если есть возможность сопроводите ответы кодом..

Бросить свою работу(книжку, отдых) и писать за тебя код,
потому что ты изволил гулять весь год ?


 
clickmaker ©   (2007-12-24 12:06) [2]


> если не успею до 25 сделать прогу не попаду к семье на новый
> год

прослезилсо


 
Deva4kA   (2007-12-24 12:20) [3]

Ты нашел у кого спрашивать, они здесь все зазвездившиеся, только издеваться умеют, гуру- это ты их оч превознес, почти к небесам, они сами нифига не знают, выпендриваются!!!


 
Kolan ©   (2007-12-24 12:28) [4]

> выпендриваются

Угу, ненадо сюда ходить с такими «вопросами»&#133 :)


 
{RASkov} ©   (2007-12-24 12:50) [5]

> [3] Deva4kA   (24.12.07 12:20)
> Ты нашел у кого спрашивать, они здесь все зазвездившиеся,
> только издеваться умеют, гуру- это ты их оч превознес,
> почти к небесам, они сами нифига не знают, выпендриваются!!!

И девАчек здесь не любят.... :(

Ты б в место того, что б заступаться, написал(а) бы программу(компонент) человеку по сжатию граф. файлов.
А то видишь ли у него проблемка с этим :) А то, что "умы планеты", над этим бьются....
Что там нам этот джепег.... подумаешь..... мы сейчас раз плюнуть сделаем круче)
:о)


 
Deva4kA   (2007-12-24 13:11) [6]


> И девАчек здесь не любят.... :(

Ну и ЛЮБИ только мальчикАФ!!!


 
{RASkov} ©   (2007-12-24 13:26) [7]

> [6] Deva4kA   (24.12.07 13:11)

:)
Я всех люблю) И тебя тоже)))


 
clickmaker ©   (2007-12-24 13:28) [8]

развели тут... порнографию )


 
mikola   (2007-12-24 13:34) [9]

1

> потому что ты изволил гулять весь год ?

ну во первых задача была мне поставленна в пятницу и спать мне в выходные не пришлось
2

> прослезилсо

можете не плакать билеты уже сдал
3

> А то, что "умы планеты", над этим бьются....
> Что там нам этот джепег.... подумаешь..... мы сейчас раз
> плюнуть сделаем круче)

здесь мне кажется вы показываете свою не компетентность, ибо лучьшие умы планеты бьются над изобретением вакцины от СПИДА, или над получением энергии путем холодного термоядерного синтеза, спешу сообщить что "ученые и лучьшие умы мира" уже лет несколько как ребята из фотошота решили эту проблемму - запускаете Photoshop  - открываете картинку - файл - сохранить для web - и затем выбрать значение от 1 до 100 в оптимизации изображения, и не плохо у них там это получилось, хотя возможно теперь "лучьшие умы" бьються над тем как это реализовать в виде какого нибудь компонента ...
возможно и то что я не понятно разъяснил что за оптимизация картинок мне необходима - тогда извините..


 
clickmaker ©   (2007-12-24 13:45) [10]


> возможно и то что я не понятно разъяснил что за оптимизация
> картинок мне необходима


см. SetStretchBltMode(Canvas.Handle, HALFTONE) и StretchBlt()


 
mikola   (2007-12-24 14:03) [11]


> clickmaker

спасибо
вот если кому нужно
нашел
procedure MakeThumbNail(const Src, Dest: TBitmap);
type
 PRGB24 = ^TRGB24;
 TRGB24 = packed record
   B: Byte;
   G: Byte;
   R: Byte;
 end;
var
 x, y, ix, iy: integer;
 x1, x2, x3: integer;

 xscale, yscale: single;
 iRed, iGrn, iBlu, iRatio: Longword;
 p, c1, c2, c3, c4, c5: tRGB24;
 pt, pt1: pRGB24;
 iSrc, iDst, s1: integer;
 i, j, r, g, b, tmpY: integer;

 RowDest, RowSource, RowSourceStart: integer;
 w, h: integer;
 dxmin, dymin: integer;
 ny1, ny2, ny3: integer;
 dx, dy: integer;
 lutX, lutY: array of integer;
begin
 if src.PixelFormat <> pf24bit then src.PixelFormat := pf24bit;
 if dest.PixelFormat <> pf24bit then dest.PixelFormat := pf24bit;
 w := Dest.Width;
 h := Dest.Height;

 if (src.Width <= dest.Width) and (src.Height <= dest.Height) then
 begin
   dest.Assign(src);
   exit;
 end;

 iDst := (w * 24 + 31) and not 31;
 iDst := iDst div 8; //BytesPerScanline
 iSrc := (Src.Width * 24 + 31) and not 31;
 iSrc := iSrc div 8;

 xscale := 1 / (w / src.Width);
 yscale := 1 / (h / src.Height);

 // X lookup table
 SetLength(lutX, w);
 x1 := 0;
 x2 := trunc(xscale);
 for x := 0 to w - 1 do
 begin
   lutX[x] := x2 - x1;
   x1 := x2;
   x2 := trunc((x + 2) * xscale);
 end;

 // Y lookup table
 SetLength(lutY, h);
 x1 := 0;
 x2 := trunc(yscale);
 for x := 0 to h - 1 do
 begin
   lutY[x] := x2 - x1;
   x1 := x2;
   x2 := trunc((x + 2) * yscale);
 end;

 dec(w);
 dec(h);
 RowDest := integer(Dest.Scanline[0]);
 RowSourceStart := integer(Src.Scanline[0]);
 RowSource := RowSourceStart;
 for y := 0 to h do
 begin
   dy := lutY[y];
   x1 := 0;
   x3 := 0;
   for x := 0 to w do
   begin
     dx:= lutX[x];
     iRed:= 0;
     iGrn:= 0;
     iBlu:= 0;
     RowSource := RowSourceStart;
     for iy := 1 to dy do
     begin
       pt := PRGB24(RowSource + x1);
       for ix := 1 to dx do
       begin
         iRed := iRed + pt.R;
         iGrn := iGrn + pt.G;
         iBlu := iBlu + pt.B;
         inc(pt);
       end;
       RowSource := RowSource - iSrc;
     end;
     iRatio := 65535 div (dx * dy);
     pt1 := PRGB24(RowDest + x3);
     pt1.R := (iRed * iRatio) shr 16;
     pt1.G := (iGrn * iRatio) shr 16;
     pt1.B := (iBlu * iRatio) shr 16;
     x1 := x1 + 3 * dx;
     inc(x3,3);
   end;
   RowDest := RowDest - iDst;
   RowSourceStart := RowSource;
 end;

 if dest.Height < 3 then exit;

 // Sharpening...
 s1 := integer(dest.ScanLine[0]);
 iDst := integer(dest.ScanLine[1]) - s1;
 ny1 := Integer(s1);
 ny2 := ny1 + iDst;
 ny3 := ny2 + iDst;
 for y := 1 to dest.Height - 2 do
 begin
   for x := 0 to dest.Width - 3 do
   begin
     x1 := x * 3;
     x2 := x1 + 3;
     x3 := x1 + 6;

     c1 := pRGB24(ny1 + x1)^;
     c2 := pRGB24(ny1 + x3)^;
     c3 := pRGB24(ny2 + x2)^;
     c4 := pRGB24(ny3 + x1)^;
     c5 := pRGB24(ny3 + x3)^;

     r := (c1.R + c2.R + (c3.R * -12) + c4.R + c5.R) div -8;
     g := (c1.G + c2.G + (c3.G * -12) + c4.G + c5.G) div -8;
     b := (c1.B + c2.B + (c3.B * -12) + c4.B + c5.B) div -8;

     if r < 0 then r := 0 else if r > 255 then r := 255;
     if g < 0 then g := 0 else if g > 255 then g := 255;
     if b < 0 then b := 0 else if b > 255 then b := 255;

     pt1 := pRGB24(ny2 + x2);
     pt1.R := r;
     pt1.G := g;
     pt1.B := b;
   end;
   inc(ny1, iDst);
   inc(ny2, iDst);
   inc(ny3, iDst);
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.01.27;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.018 c
15-1198132117
I
2007-12-20 09:28
2008.01.27
наиболее функиональный выход в irc через jabber клиент


15-1198232238
tytus
2007-12-21 13:17
2008.01.27
Как скопировать файл по сети?


2-1198753698
Gydvin
2007-12-27 14:08
2008.01.27
Существует ли экземпляр класса


15-1197973347
Начинающий
2007-12-18 13:22
2008.01.27
Посоветуйте хорошую книгу по delphi для начинающего..


11-1182595595
Vladimir Kladov
2007-06-23 14:46
2008.01.27
Версия 2.70